angular js $ routeParam无法正常工作

时间:2016-08-22 10:09:33

标签: angularjs routeparams

我使用$ routeProvide将页面从一个页面重定向到另一个页面,并且我在url中传递了一些动态参数。

它在一个地方工作而不与另一个地方合作。

我的代码:在app.js

app.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
    $routeProvider
            .when('/', {
                templateUrl: "client/home/home.html",
                controller: "IndexCtrl",
                access: {
                    isloggedIn: false
                }
            }) 
            .when('/test/:searchTerm', {
                templateUrl: "client/test.html",
                controller: "testController",
                access: {
                    isloggedIn: false
                } 
            })
            .when('/test2/:id', {
                templateUrl: "client/index.html",
                controller: "indexController",
                access: {   
                    isloggedIn: true
                }
            }) 

            .otherwise({
                redirectTo: "/"
            });
}]);
控制器文件中的

:当我点击url时为testController server.com/#/test/45进入控制台45和indexController当我点击url server.com/#/test2/45然后我得到:id在控制台。

app.controller("testController", ['$location', '$rootScope', '$routeParams', function ($location, $rootScope, $routeParams) {
 console.log($routeParams.searchTerm); //get result 45
}]);

app.controller("indexController", ['$location', '$rootScope', '$routeParams', function ($location, $rootScope, $routeParams) {
 console.log($routeParams.id); //get result :id
}]);

为什么会发生这种情况有人可以帮忙吗应该是什么问题?

3 个答案:

答案 0 :(得分:0)

尝试使用($routeParams.id);代替($routParams.id);,我不知道为什么$routParams.searchTerm正在运作,但它不应该route,不是rout)。

答案 1 :(得分:0)

似乎你的代码是正确的,除了拼写错误。我能找到的唯一区别是IsLoggedIn属性值。你尝试过它是假的吗?并且IsLoggedIn属性的意义是什么。

答案 2 :(得分:0)

检查hyperlink到路线/test2/:id。 它可能像ng-href="#/test2/:id" 将其更改为ng-href="#/test2/{{id}}"

不要忘记定义变量id

fiddle

中重新创建了该问题