আমি কিছু লোককে কমাতে বন্ধুত্বপূর্ণ নির্ভরতা ইনজেকশন সহ কৌণিক.কন্ট্রোলার পদ্ধতিটি ব্যবহার করে এটি করতে জিজ্ঞাসা করছি। যেহেতু আমি এই কাজটি পেয়েছি আমি ফিরে এসে সাহায্য করতে বাধ্য বোধ করি। এখানে আমার সমাধান (মূল প্রশ্ন এবং মিসকো এর উত্তর থেকে গৃহীত):
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';
}]);
যেহেতু এই কোডটি প্রশ্ন / সর্বাধিক জনপ্রিয় উত্তর থেকে উদ্ভূত হয়েছে এটি অরীক্ষিত, তবে যদি আপনি ইতিমধ্যে কীভাবে সংশোধন বান্ধব কৌনিক কোড বানাবেন তা বুঝতে পারলে এটি আপনাকে সঠিক দিকে প্রেরণ করা উচিত। আমার নিজের কোডটির যে অংশটি প্রয়োজন ছিল না সেটি হ'ল 'ফোনগুলির' জন্য রেজোলিউশন ফাংশনে একটি "ইনজেকশন" ছিল, না আমি কোনও 'বিলম্ব' বস্তুটি মোটেই ব্যবহার করি নি।
আমি এই ইউটিউব ভিডিওটি http://www.youtube.com/watch?v=P6KITGRQujQ&list=UUKW92i7iQFuNILqQOUOCrFw&index=4&feature=plcp এর প্রস্তাব দিই , যা আমাকে বেশ কিছুটা সহায়তা করেছিল
আপনি কি আমার নিজের কোডটিও পোস্ট করার সিদ্ধান্ত নিয়েছেন তা আগ্রহী হওয়া উচিত (কোফিস্ক্রিপ্টে লিখিত) যাতে আপনি দেখতে পাচ্ছেন যে এটি কীভাবে কাজ করে।
এফওয়াইআই, আগাম আমি জেনেরিক নিয়ামক ব্যবহার করি যা আমাকে বেশ কয়েকটি মডেলের 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 ....
]