Factory:Выполнение кода в заводе, когда это необходимо, а не при загрузке в контроллер
.factory("myFac", ['$http', '$q', function($http, $q) {
var defer = $q.defer();
$http.get('some/sample/url').then(function (response) { //success
/*
* Do something with response that needs to be complete before
* controller code is executed.
*/
defer.resolve('done');
}, function() { //error
defer.reject();
});
return defer.promise;
}]);
Контроллер:
.controller("testCtrl", ['$scope', 'myFac', function($scope, myFac) {
/*
* Factory code above is executed immediately as 'myFac' is loaded into controller.
* I do not want this.
*/
if($scope.someArbitraryBool === true) {
//THIS is when I want to execute code within myFac
myFac.then(function() {
//Execute code that is dependent on myFac resolving
});
}
}]);
Пожалуйста, дайте мне знать, если это возможно, чтобы задержать код на заводе до Мне это нужно. Кроме того, если есть лучший способ выполнить эту концепцию, не стесняйтесь исправлять.
@JLewkovich сделать upvote I f это помогло .. Спасибо :) –