3

I tried to make the 'getting started' tutorial from Angular JS, but I have a problem when setting the route of a link: the controller of that route does not get called when the user clicks on the link.

Here is my code:

angular.module('phonecat', []).
config(['$routeProvider',
    function ($routeProvider) {
        $routeProvider.
        when('/phones', {
            templateUrl: 'partials/phone-list.html',
            controller: PhoneListCtrl
        }).
        when('/phones/:phoneId', {
            templateUrl: 'partials/phone-detail.html',
            controller: PhoneDetailCtrl
        }).
        otherwise({
            redirectTo: '/phones'
        });
    }
]);

function PhoneDetailCtrl($scope, $routeParams, $http) {
    $scope.phoneId = $routeParams.phoneId;

    $scope.total = 4;
    $http.get('phones/' + $routeParams.phoneId + '.json').success(function (data) {
        $scope.phone = data;
    });
}

function PhoneListCtrl($scope, $http) {
    $http.get('phones/phones.json').success(function (data) {
        $scope.phones = data;
    });

    $scope.orderProp = 'age';
}
4

3 に答える 3

2

どのangularjsバージョンを使用しましたか? 私もチュートリアルに従っており、angular-1.0.0rc7.js を使用しています。app.js ファイルを調べると、次の代わりに使用されtemplateますtemplateUrl

$routeProvider.when('/phones', {
    template: 'partials/phone-list.html',
    controller: PhoneListCtrl
});

angular-1.0.3.jsあなたのコードを見て、RCの上にまたは以前のバージョンを使用したいかもしれません

于 2013-02-13T12:17:38.487 に答える
1

これは機能するはずですが、リンクがアプリのルートである DOM 要素内にあることを確認する必要があります。すなわち(ng-app='my-app')。ページのマークアップを見ないとわかりません。

于 2012-12-10T23:57:42.063 に答える
0

問題は質問者によって解決されました:

私は問題を修正しました - 実際には、このチュートリアルの次のステップの HTML を持っていましたが、主にモデルにまだ存在しない属性とのバインディングがあったため、アプリを台無しにしていました。

于 2016-06-01T07:48:48.197 に答える