将参数传递给定义路径中的控制器?

时间:2014-05-02 14:40:15

标签: angularjs angularjs-routing

说我有一个如此定义的应用程序:

angular.module('myApp', ['myControllers'])
    .config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/', {
            templateUrl: 'myTemplate.html',
            controller: 'MyController'
            //???
        })]);

怎么说,通过这个路线定义设置$scope.myVariable?我想用它来做面包屑。

2 个答案:

答案 0 :(得分:2)

我认为更好的方法就是使用路由参数。看到 https://docs.angularjs.org/api/ngRoute/service/ $ routeParams

你可以让你的路线像 /章节/:chapterId

并在您的控制器中,注入$ routeParams并访问该值,如下所示: $ routeParams.chapterId

答案 1 :(得分:0)

事实证明,您可以使用resolve方法中的.when属性,如下所示:

.when('/', {
    templateUrl: 'myTemplate.html',
    controller: 'MyController',
    resolve: {
        test: function() {return "test";}
    }
});

然后在我的控制器中,我无法通过$scope访问它,但我会这样注入:

.controller('MyController', ['$scope', 'test', function($scope, test) {
    //test contains "test"
}]);