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

hyperlinkルートを確認してください/test2/:idng-href="#/test2/:id" に変更するようなものかもしれませんng-href="#/test2/{{id}}"


変数を定義することを忘れないでくださいid

フィドルで問題を再現しました

于 2016-08-22T12:39:37.527 に答える
0

($routeParams.id);の代わりに試してみてください($routParams.id);。なぜあなたが働いているのかわかりませんが$routParams.searchTerm、そうすべきではありません (すべきでrouteはありませんrout)。

于 2016-08-22T10:18:18.780 に答える
0

スペルミスを除けば、コードは正しいようです。私が見つけることができる唯一の違いは、IsLoggedIn プロパティの値です。falseにしてみましたか?IsLoggedIn プロパティの意味は何ですか。

于 2016-08-22T10:32:06.213 に答える