0

我已经使用 $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: "/"
            });
}]);

在控制器文件中:对于 testController 当我点击 url 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
}]);

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

4

3 回答 3

0

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

于 2016-08-22T10:18:18.780 回答
0

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


不要忘记定义变量id

在小提琴中重新创建了问题

于 2016-08-22T12:39:37.527 回答
0

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

于 2016-08-22T10:32:06.213 回答