我有多个调用同一控制器的路由,我想将不同的变量传递给它。
// Example $routeProvider. when('/a', { templateUrl: 'test.html', controller: 'MyController' // should get passed 'exampleA' }). when('/b', { templateUrl: 'test.html', controller: 'MyController' // should get passed 'exampleB' });
我知道我可以使用“解决”对象:
$routeProvider. when('/a', { templateUrl: 'test.html', controller: 'MyController', resolve: {test: function() { return true; }} });
传递值作为依赖项:
app.controller('MyController', ['$scope', 'test', function ($scope, test) { console.log(test); // true }
这种方法的问题是,如果其他路线上缺少resolve对象,则我的应用程序崩溃,并且我想传递可选的参数。
有什么方法可以(从路由提供者)将特定的参数传递给Controller?
谢谢
路由:
$routeProvider. when('/a', { templateUrl: 'test.html', controller: 'MyController', paramExample: 'exampleA' }). when('/b', { templateUrl: 'test.html', controller: 'MyController', paramExample: 'exampleB' });
访问:在控制器中注入$ route,然后使用它
app.controller('MyController', ['$scope', '$route', function ($scope, $route) { var paramValue = $route.current.$$route.paramExample; console.log(paramValue); }