AngularJS手动引导模块

时间:2013-11-12 04:29:00

标签: javascript angularjs

我的HTML ...

<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}}代替“我的页面”

我可以这样做

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

它将开始工作。但是,重点是什么。为什么我必须使用ng-controller

我希望我已经说清楚了。希望有人能回应这个。

1 个答案:

答案 0 :(得分:1)

我认为原因是你在myController中设置了pageName,但是div不能使用它,因为控制器既没有在它上面定义,也没有在它的父节点上定义。

应该在$ rootScope上设置

pageName以使其正常工作。您可以在模块的运行块中定义它,如

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

此运行块在角度已引导应用程序之后运行。见这里
http://docs.angularjs.org/guide/module