переменная контекста не передается в шаблон, включенный с помощью ng-include

0

Переменная области не передается шаблону, включенному в тег ng-include. Я хочу, чтобы страница generic.html поставлялась с page1.html и page2.html. Я получаю статический контент Привет, приветствую, но, когда я нажимаю метод в контроллере1.js, имя, заключенное в угловую директиву, не печатается. Я попытался назвать в одном объекте, как $ scope.user = {}, и добавил user.name, а затем я не могу связать имя в шаблоне html.

Main.js

 $stateProvider
        .state('index', {
            parent: 'app',
            abstract : true,
            url: '/index',
            views: {
                'content@': {
                    templateUrl: urlpath+'ngtemplates/chat/chat.menu.html',
                    controller: ['$state',function ($state) {
                      $state.go('screen.welcome');
                    }]
                }
            }
        })
        .state('screen.welcome', {
            url: '',
                    templateUrl: urlpath+'templates/page1.html',
                    controller:'Controller1'
        })
        .state('screen.details', {
            url: '',
                    templateUrl: urlpath+'templates/page2.html',
                    controller:'Controller2'
        })

Controller1.js

$scope.selected = function(){
$scope.name = "Jim";
}

generic.html

<div ng-app="sampleapp">
<h1> Hi, Welcome! </h1>
<p> {{name}} </p>
</div>
  • 0
    Привет, вы использовали директиву ng-app в своем шаблоне? Если не используется, HTML будет отображать выражение как есть.
  • 0
    его уже там

2 ответа

0

Вы также можете использовать синтаксис controllerAs.

.state('screen.details', {
        url: '',
                templateUrl: urlpath+'templates/page2.html',
                controllerAs:'vm'
    })

И в Html вы можете получить доступ, например {{vm.name}}.

Если вы используете синтаксис ControllerAs, вам не нужно помещать ng-controller в свой HTML.

0

Вам нужно добавить контроллер в шаблон

   <div ng-app="sampleapp">
     <div ng-controller = "Controller1"> //controller added 
        <h1> Hi, Welcome! </h1>
        <p> {{name}} </p>
    </div>
        </div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню