मैं कुछ लोगों को यह पूछते हुए देखता हूं कि यह न्यूनतम अनुकूलता इंजेक्शन के साथ कोणीय.कंट्रोलर पद्धति का उपयोग करके कैसे किया जाता है। जब से मुझे यह काम मिला है मैंने महसूस किया कि मैं वापस आकर मदद करने के लिए बाध्य हूं। यहाँ मेरा समाधान (मूल प्रश्न और मिस्को के उत्तर से अपनाया गया है):
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';
}]);
चूँकि यह कोड प्रश्न / सबसे लोकप्रिय उत्तर से लिया गया है, इसलिए यह अप्रयुक्त है, लेकिन यह आपको सही दिशा में भेजना चाहिए, यदि आप पहले से ही यह समझते हैं कि किस तरह से मिनिमाइज़ फ्रेंडली कोणीय कोड बनाया जाए। अपने स्वयं के कोड की आवश्यकता वाले एक हिस्से को "फोन" के संकल्प समारोह में "फोन" का एक इंजेक्शन नहीं था, न ही मैंने किसी भी 'देरी' ऑब्जेक्ट का उपयोग किया था।
मैं इस youtube वीडियो की सिफारिश भी करता हूं। http://www.youtube.com/watch?v=P6KITGRQujQ&list=UUKW92i7iQFuNILqQOUOCrFw&index=4&feature=plcp , जिसने मुझे काफी मदद की
क्या आपको दिलचस्पी है कि मैंने अपना कोड (कॉफ़ीस्क्रिप्ट में लिखा हुआ) भी पेस्ट करने का फैसला किया है ताकि आप देख सकें कि मुझे यह कैसे काम कर रहा है।
FYI करें, अग्रिम में मैं एक सामान्य नियंत्रक का उपयोग करता हूँ जो मुझे कई मॉडलों पर CRUD करने में मदद करता है:
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 ....
]