本文介绍了为什么控制器不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路由器工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-24 19:21
查看更多