14

ngRoute の代わりに Angular の ui-router の使用を開始したいと考えています。もともと、私のアプリの設定は次のようでした

myApp.config(["$routeProvider",
    function($routeProvider) {
        $routeProvider
            .when("/search", {
                templateUrl: "partials/customerSearch.html"
            })
            .when("/home", {
                templateUrl: "partials/home.html"
            })
            .when("/login", {
                templateUrl: "partials/login.html",
                controller:  "LoginCtrl"
            })
            .otherwise({
                redirectTo: "/home"
            })
        ;
    }
]);

ライブラリを交換し、構成を変更しました。を引き続き使用できることは理解しています$routeProviderが、それは従来の回避策のようです。

myApp.config(["$urlRouterProvider", "$stateProvider",
    function($urlRouterProvider, $stateProvider) {
        $urlRouterProvider
            .when("/search", "partials/customerSearch.html")
            .when("/home",   "partials/home.html")
            .when("/login",  "partials/login.html")
            .otherwise("/home")
        ;
        $stateProvider
            .state({
                name:        "customer",
                url:         "/customer/:username",
                templateUrl: "partials/customer.html"
            })
            .state({
                parent:      "customer",
                name:        "details",
                url:         "/details",
                templateUrl: "partials/customerDetails.html"
            })
        ;

    }
]);

$digestこれにより、がループに陥っていることを示しているように見えるエラーが表示されます。.otherwise("/home")ルールを疑います。handlers をテンプレート URL のように正しく指定していますか?

sをコメントアウトすると.when()、 以外は何も機能しません"/customer/:username"。すべてのルートに状態を定義する必要がありますか? $urlRouterProviderもしそうなら、 と の両方を持つことのポイントは何$stateProviderですか? 別の質問で、それぞれが何をすることになっていますか?

4

2 に答える 2

0

これでうまくいくはずです。それ以外の機能は、$urlRouteProvider サービスの一部です。問題が発生した場合は、$stateProvider.state() 関数のパラメーターとして使用されるオブジェクトを定義する方法に関するチュートリアルをご覧ください。ここでは、otherwise ルートをどこに配置するかに焦点を当てました。

myApp.config(['$stateProvider','$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {

    $stateProvider
        .state({
            name:        'customer',
            url:         '/customer/:username',
            templateUrl: 'partials/customer.html',
            controller: 'YourCtrl'
        })
        .state({
            parent:      'customer',
            name:        'details',
            url:         '/details',
            templateUrl: '/partials/customerDetails.html',
            controller: 'YourCtrl'
        });

     $urlRouteProvider.otherwise('home');
}

]);

于 2015-02-17T21:18:40.403 に答える