मैं सर्वर से आवश्यक डेटा तक पहुंचने तक नियंत्रक के प्रारंभ में देरी करना चाहता हूं।Angular.js नियंत्रक प्रारंभ में देरी
मैं कोणीय 1.0.1 के लिए इस समाधान पाया: Delaying AngularJS route change until model loaded to prevent flicker, लेकिन यह कोणीय 1.1.0
खाका के साथ नहीं काम कर रहा हो सकता है
<script type="text/ng-template" id="/editor-tpl.html">
Editor Template {{datasets}}
</script>
<div ng-view>
</div>
जावास्क्रिप्ट
function MyCtrl($scope) {
$scope.datasets = "initial value";
}
MyCtrl.resolve = {
datasets : function($q, $http, $location) {
var deferred = $q.defer();
//use setTimeout instead of $http.get to simulate waiting for reply from server
setTimeout(function(){
console.log("whatever");
deferred.resolve("updated value");
}, 2000);
return deferred.promise;
}
};
var myApp = angular.module('myApp', [], function($routeProvider) {
$routeProvider.when('/', {
templateUrl: '/editor-tpl.html',
controller: MyCtrl,
resolve: MyCtrl.resolve
});
});
कार्य उदाहरण: http://jsfiddle.net/dTJ9N/5 – mb21
मैं कहूंगा इस मामले में एक और वादे के साथ $ http के वादे को लपेटने के लिए प्रदर्शन हिट इतना छोटा है कि चिंता करने योग्य नहीं है। हालांकि, अतिरिक्त वादे के बहिष्कार के परिणामस्वरूप अधिक संक्षिप्त कोड एक योग्य प्रयास है। –
कोड अच्छा और साफ है, लेकिन आज के रूप में, पहेली टूटा हुआ है, दस्तावेज़ स्रोत दिखाता है। कोणीय को बहुत नया यह ध्यान देने से परे बहुत मदद करने के लिए। – enigment