本文介绍了为什么控制器不angularjs的UI路由器工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试加载测试状态或这些国家,控制器不影响。模板是完全改变了,但没有数据来自于国家配置中提到的控制器。
和我没有用NG-控制器指令任何地方。
myApp.config(函数($ stateProvider,$ urlRouterProvider){
$ stateProvider.state('任务',
{
网址:'/任务,
控制器:TasksController
观点:{
侧栏:{templateUrl:/部分/任务/ taskcreateform.html},
内容:{templateUrl:/部分/任务/ taskgrid.html'}
}})
.STATE('音符',
{
网址:'/笔记,
控制器:TasksController
观点:{
侧栏:{templateUrl:/部分/任务/ taskcreateform.html},
内容:{templateUrl:/部分/任务/ taskgrid.html'}
}
})
.STATE(测试,
{
网址:'/测试/:身份证',
控制器:AtTestController
观点:{
侧栏:{templateUrl:/部分/任务/ taskupdateform.html},
内容:{templateUrl:'/分/ test.html的'}
}})
.STATE('edittask',
{
网址:'/ edittask /:editabletaskid',
控制器:TasksController
观点:{
侧栏:{templateUrl:/部分/任务/ taskupdateform.html},
内容:{templateUrl:/部分/任务/ taskgrid.html'}
},
解决:{ editabletask:函数($ stateParams,任务){
Task.get({ID:$ stateParams.editabletaskid},
功能(响应){
返回响应;
},
功能(错误){
的console.log(ERR);
});
}
} });
$ urlRouterProvider.otherwise('任务');});
和我的一个控制器:
////////////////////测试控制器/////////////
myApp.controller(AtTestController功能($范围){ $ scope.appname =拉胡尔·应用; $ scope.name =功能(){
的console.log($ scope.appname);
}
$ scope.name();
});
解决方案
问题的关键是:
E.g. instead of this:
// because we used views, this controller is now skipped
controller:"AtTestController",
views:{
"sidebar":{templateUrl:'/partial/task/taskupdateform.html'},
"content":{templateUrl:'/partial/test.html'}
}
we need that:
views:{
"sidebar":{
templateUrl:'/partial/task/taskupdateform.html',
controller:"AtTestController",
},
"content":{templateUrl:'/partial/test.html'}
}
Check the doc for the difference:
Views override state's template properties
这篇关于为什么控制器不angularjs的UI路由器工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!