Saya melihat beberapa orang bertanya bagaimana melakukan ini menggunakan metode angular.controller dengan injeksi dependensi ramah minification. Karena saya baru mendapatkan pekerjaan ini, saya merasa berkewajiban untuk kembali dan membantu. Inilah solusi saya (diadopsi dari pertanyaan awal dan jawaban Misko):
angular.module('phonecat', ['phonecatFilters', 'phonecatServices', 'phonecatDirectives']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: PhoneListCtrl,
resolve: {
phones: ["Phone", "$q", function(Phone, $q) {
var deferred = $q.defer();
Phone.query(function(successData) {
deferred.resolve(successData);
}, function(errorData) {
deferred.reject(); // you could optionally pass error data here
});
return deferred.promise;
]
},
delay: ["$q","$defer", function($q, $defer) {
var delay = $q.defer();
$defer(delay.resolve, 1000);
return delay.promise;
}
]
},
}).
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: PhoneDetailCtrl,
resolve: PhoneDetailCtrl.resolve}).
otherwise({redirectTo: '/phones'});
}]);
angular.controller("PhoneListCtrl", [ "$scope", "phones", ($scope, phones) {
$scope.phones = phones;
$scope.orderProp = 'age';
}]);
Karena kode ini berasal dari pertanyaan / jawaban yang paling populer, kode ini tidak diuji, tetapi harus mengirim Anda ke arah yang benar jika Anda sudah mengerti cara membuat kode sudut ramah minifikasi. Satu bagian yang tidak saya perlukan adalah kode injeksi "Telepon" ke fungsi tekad untuk 'ponsel', saya juga tidak menggunakan objek 'penundaan' sama sekali.
Saya juga merekomendasikan video youtube ini http://www.youtube.com/watch?v=P6KITGRQujQ&list=UUKW92i7iQFuNILqQOUOCrFw&index=4&feature=plcp , yang membantu saya sedikit
Jika Anda tertarik, saya memutuskan untuk juga menempelkan kode saya sendiri (Ditulis dalam coffeescript) sehingga Anda dapat melihat bagaimana saya membuatnya berfungsi.
FYI, sebelumnya saya menggunakan pengontrol generik yang membantu saya melakukan CRUD pada beberapa model:
appModule.config ['$routeProvider', ($routeProvider) ->
genericControllers = ["boards","teachers","classrooms","students"]
for controllerName in genericControllers
$routeProvider
.when "/#{controllerName}/",
action: 'confirmLogin'
controller: 'GenericController'
controllerName: controllerName
templateUrl: "/static/templates/#{controllerName}.html"
resolve:
items : ["$q", "$route", "$http", ($q, $route, $http) ->
deferred = $q.defer()
controllerName = $route.current.controllerName
$http(
method: "GET"
url: "/api/#{controllerName}/"
)
.success (response) ->
deferred.resolve(response.payload)
.error (response) ->
deferred.reject(response.message)
return deferred.promise
]
$routeProvider
.otherwise
redirectTo: '/'
action: 'checkStatus'
]
appModule.controller "GenericController", ["$scope", "$route", "$http", "$cookies", "items", ($scope, $route, $http, $cookies, items) ->
$scope.items = items
#etc ....
]