1

我的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

我希望我已经说清楚了。希望有人对此作出回应。

4

1 回答 1

1

我认为原因是您正在设置 pageNamemyController但 div 不能使用它,因为控制器既没有在它上面定义,也没有在它的父级上定义。

pageName应该在 $rootScope 上设置以使其工作。您可以在模块的运行块中定义它,例如

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

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

于 2013-11-12T04:37:06.110 回答