Я попытался вырезать детали и сделать это достаточно обобщенно ...Binding Угловое Услугу Scope терпит неудачу после 1.2 обновления
Использование 1.2 RC2 мой код работал нормально, после обновления до 1,2 стабильной и коррекции $ parse changes Я столкнулся с проблемой привязки. Перед обновлением следующий код работал без каких-либо проблем. updateChildObject()
вызывается со страницы html.
.when('/the-page/', {
controller: function($scope, serviceResults, FactoryService) {
$scope.object.childObject = serviceResults;
// this function used to work. Now assigns the function to the
// scope rather than the results
$scope.updateChildObject = function(args) {
$scope.object.childObject = FactoryService.getSomethingFromServer(args);
};
},
resolve: {
serviceResults: function(FactoryService) {
return FactoryService.getSomethingFromServer(args);
}
}
Поскольку это не удается сейчас ($ scope.object.childObject появляется, чтобы установить в качестве функции, а не результаты) Я считаю, что подходящий способ решить эту проблему через обещание. (Обратите внимание, что сама услуга успешно использует обещание.) Тем не менее, я испытываю трудности с обновлением $ scope, когда обещание будет разрешено.
Я считаю, что следующий код находится по правильному пути. $ q вводится в контроллер.
...
$scope.updateChildObject = function(args) {
var defer = $q.defer();
defer.promise.then(function() {
return FactoryService.getSomethingFromServer(args);
});
$scope.object.childObject = defer.resolve();
};
...
Так может ли кто-нибудь сказать мне, что я здесь делаю неправильно? Обещания - это лишь одна из тех вещей, которые пока еще не на меня надавили.
А человек, спасибо за отзыв. Понятия не имею, что я мог бы использовать мое обслуживание. Действительно полезно. Таким образом, обе версии работают одинаково. Ваша модель устраняет необходимость впрыскивания $ q, которое мне нравится. Вы правы, хотя автоматическое разворачивание было именно тем, к чему я работал. – iamsar