写入角度控制器的风格是这样的(使用控制器名称而不是功能)
angular.module('mymodule',[ ]) .controller('myController',[ '$scope',function($scope) { // Some code here } ]);
我现在需要的是提供i路由我想定义解析部分:
$routeProvider.when('/someroute',{ templateUrl: 'partials/someroute.html',resolve: myController.resolve}) // THIS IS THE CRITICAL LINE
由于控制器被定义为如何完成解析部分的名称?
要澄清更多的细节,我想在路由解析之前从服务器加载一些数据,然后在控制器中使用这些数据。
更新:要更准确地说,我希望每个模块都有其“解析”功能,将在root执行之前调用该控制器。 this post中的解决方案(由Misko Hevery回答)完全是我想要的,但是我没有控制器作为功能,而是一个名字。
控制器定义和解析部分将在路由定义上单独指定。
原文链接:https://www.f2er.com/angularjs/144717.html如果您在模块级别定义控制器,则需要将其引用为字符串,因此:
$routeProvider.when('/someroute',controller: 'myController',resolve: { myVar: function(){ //code to be executed before route change goes here }; });
上面的代码还显示了如何定义一组将在路由更改之前解决的变量。当解决这些变量可以注入控制器时,从上面的代码片段中获取示例,您将如下编写控制器:
.controller('myController',['$scope','myVar',function($scope,myVar) { // myVar is already resolved and injected here } ]);