8

Tôi có been told rằng tôi nên sử dụng cú pháp app.controller, để hỗ trợ việc rút gọn.

Viết lại mẫu (hướng dẫn) ví dụ, và tôi thấy rằng tôi không thể làm cho nó làm việc:

use 'strict'; 

/* Minifiable solution; which doesn't work */ 
var app = angular.module('myApp', ['ngGrid']); 

// phones.json: http://angular.github.io/angular-phonecat/step-5/app/phones/phones.json 

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

    $scope.orderProp = 'age'; 
}]); 
/* Alternate [textbook] solution; which works */ 
function PhoneListCtrl($scope, $http) { 

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

    $scope.orderProp = 'age'; 
} 

PhoneListCtrl.$inject = ['$scope', '$http']; 
<body ng-app="myApp" ng-controller="PhoneListCtrl"> 
    {{phones | json}} 
</body> <!-- Outputs just an echo of the above line, rather than content --> 

Tôi cần những gì để thay đổi?

+0

Theo như tôi biết bạn có thể sử dụng phiên bản thứ hai ngay cả đối với giảm thiểu, vì dòng $ bơm - mà nói angular.js đúng không thay đổi tên của hai tham số. – flaschenpost

+0

Nó hoạt động cho tôi. Lỗi bạn nhận được là gì? – DanEEStar

Trả lời

13

Con đường tôi đã bố trí bộ điều khiển của tôi là:.

var app = angular.module('myApp', ['controllers', 'otherDependencies']); 
var controllers = angular.module('controllers', []); 
controllers.controller('PhoneListCtrl', ['$scope', '$http', function ($scope, $http) { 
    // your code 
    $http.get('phones/phones.json').success(function (data) { 
    $scope.phones = data; 
    }); 
}]); 
+0

Làm cách nào để bạn tham chiếu nó trong chế độ xem? – user2283066

+0

{{phones}} là chính xác, vì bộ điều khiển đưa dữ liệu vào $ scope.phones –

+0

Bạn nói định dạng thứ 2 hoạt động, vì vậy nó phải là cách bạn đặt ra các mô-đun. –

Các vấn đề liên quan