簡體   English   中英

AngularJS沒有進入控制器

[英]AngularJS doesn't enter controller

我正在學習Angular的官方教程 (目前是第8步)。 我的問題是,當我有清單時:

<ul class="phones">
    <li ng-repeat="phone in phones | filter: query | orderBy: orderProp">
        <a href="#/phones/{{phone.id}}"><span>{{phone.name}}</span></a>
    </li>
</ul>

我單擊其中一個元素,什么都沒有發生(除非更改了url,但這似乎很正常,因為它在#之前進行了哈希處理)。

我的js是:

app.js

var phonecatApp = angular.module('phonecatApp', [
    'ngRoute',
    'phonecatControllers'
]);

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

controller.js

var phonecatControllers = angular.module('phonecatControllers', []);

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

        $scope.orderProp = 'name';
    }]);

phonecatControllers.controller('PhoneDetailCtrl', ['$scope', '$routeParams', '$http',
    function($scope, $routeParams, $http) {
        alert($routeParams);
        $http.get('app/phones/' + $routeParams.phoneId + '.json').success(function(data) {
            console.log(data)
            $scope.phone = data;
        });
    }]);

我能做什么? 我什至試圖復制兩個js文件的教程源,但這無濟於事。 實際上,不會觸發PhoneDetailCtrl任何內容,也不會PhoneDetailCtrl alertconsole.log ,更不用說get

您缺少HTML中的控制器聲明,只需添加所需的內容即可:(get函數位於PhoneDetailCtrl下/ phones列表位於PhoneListCtrl下)

<ul class="phones" ng-controller="PhoneDetailCtrl">
    <li ng-repeat="phone in phones | filter: query | orderBy: orderProp">
        <a href="#/phones/{{phone.id}}"><span>{{phone.name}}</span></a>
    </li>
</ul>

請注意,您要聲明控制器的元素(在本例中為ul )創建一個作用域,您可以在其中訪問控制器的作用域變量和函數。 因此, ul之外的任何地方都將“盲目”到PhoneDetailCtrl控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM