javascript
  • angularjs
  • 2013-11-12 4 views 1 likes 
    1

    Мой HTML ...AngularJS вручную Бутстрапирование модуль

    <body id="main"> 
        {{pageName}} 
    </body> 
    

    Мои JS:

    angular.module('myApp',[]) 
        .controller('myController', function($scope){ 
        console.log('init'); 
        $scope.pageName = 'My page'; 
    }); 
    
    angular.element(document).ready(function(){ 
        angular.bootstrap(document.getElementById('main'), ['myApp']); 
    }); 
    

    Мой Результирующий HTML:

    {{pageName}} вместо 'Моя страница'

    I может это сделать

    <body id="main" ng-controller="myController"> 
    </body> 
    

    и он начнет работать. Но в чем смысл. Почему я обязательно должен использовать ng-controller?

    Надеюсь, я убедился. Надеюсь, кто-то ответит на это.

    ответ

    1

    Я думаю, причина в том, что вы устанавливаете pageName в myController, но div не может использовать его, поскольку контроллер не определен ни на нем, ни на его родительском.

    pageName должен быть установлен на $ rootScope, чтобы заставить его работать. Вы можете определить, что в блоке запуска модуля как

    angular.module('myApp',[]).run(function($rootScope) { 
        $rootScope.pageName='My Page'; 
    }); 
    

    Этого пробег пробеги блока после угловой имеют бутстрапированную применение. См. Здесь
    http://docs.angularjs.org/guide/module

    +0

    Спасибо. это подходит для меня :) – AdityaSaxena

    Смежные вопросы