Angularjs 解决在单独文件/模块中不将vlaue返回控制器的问题
文件[myapp.js]Angularjs 解决在单独文件/模块中不将vlaue返回控制器的问题,angularjs,angular-ui-router,Angularjs,Angular Ui Router,文件[myapp.js] $stateProvider.state('view6', { resolve: {simpleObj: function(){ return {'value':"hello"}; }} controller:'MyCtrl6' }); 当MyCtrl6存在于单独的文件/模块中时,无法将已解析的依赖项传递给MyCtrl6 文件[controllers.js] angular.module('myApp.controllers
$stateProvider.state('view6', {
resolve: {simpleObj: function(){ return {'value':"hello"}; }}
controller:'MyCtrl6'
});
当MyCtrl6存在于单独的文件/模块中时,无法将已解析的依赖项传递给MyCtrl6
文件[controllers.js]
angular.module('myApp.controllers', [])
.controller('MyCtrl6',['$scope',function($scope,simpleObj) {
console.log(simpleObj.value);
}]);
输出:“未定义”
然而,以下工作:
$stateProvider.state('view6', {
resolve: {simpleObj: function(){ return {'value':"hello"}; }
controller:function(simpleObj){console.log(simpleObj.value);}
});
请原谅剪切粘贴omissons,但我认为这应该传达出问题所在
谢谢-似乎存在错误类型的参数:
.controller('MyCtrl6',['$scope',function($scope,simpleObj) {
而我们应该看到
.controller('MyCtrl6',['$scope', 'simpleObj' ,function($scope,simpleObj) {
这也应该回答为什么这是可行的:
controller:function(simpleObj){
因为我们确实使用了不同的符号将对象传递到控制器似乎我是在部分模板中调用控制器
div ng-controller='MyCtrl3'
显然,当您在stateProvider路由定义中定义控制器时,这会造成一些混乱
谁知道呢 谢谢,但是当我尝试这样做时,我只是在simpleObj上得到了一个未定义/未加载的错误。似乎未解决的依赖关系正在引发一个问题。对我来说似乎是自相矛盾的看到你的完整代码会很好,也许在一个垃圾桶里。。。然后我们可以检查真正的问题是什么。因为参数、声明的和预期的必须匹配在一起,否则您将收到错误实例化的控制器。此外,解析函数必须正确,因为它与内联控制器一起工作。最后,resolve语句的末尾应该有逗号。简单-具有可重复错误的plunker将加快发现问题的速度