在分离的文件中使用Angular控制器无法正常工作。
在分离的文件中使用Angular控制器无法正常工作。
为什么控制器在分开的文件中无法工作?
应用程序结构:
查看应用程序结构这里
store.html:
{{user.firstname}}
app.js:
var app = angular.module("myApp",[]); app.controller("myContoller",["$scope",function ($scope) { }]);
userController.js
app.controller("userController",["$scope",function ($scope) { $scope.hello= "john doe"; $scope.user = { id:1, firstname:"Wojciech" } }]);
原因:将Angular控制器定义在不同的文件中时,可能会出现控制器无法工作的问题。这可能是因为在定义控制器之前加载了app.js文件。
解决方法:确保在加载userController.js文件之前加载app.js文件。这样可以确保在定义控制器时,app对象已经存在。
以下是解决该问题的代码示例:
app.js文件:
var app = angular.module("app", []);
userController.js文件:
/* angular.module调用不带"[]"会返回app对象, 而不是创建一个新的app对象。 */ var app = angular.module("app"); app.controller("ControllerName", ["$scope", function($scope){ // 控制器代码在这里。 }]);