Отказа от ответственности, что я новичок в angularjs :)
У меня есть контроллер, который делегирует к службе, и я пытаюсь сохранить $ рамку, так что я могу scope.apply после настройка свойств:
var Build = function($scope, $http, mango) {
var scope = $scope;
$scope.BuildManagerSubmit = function(selectedProfile) {
mango.buildMango(selectedProfile.def, function(profiledef) {
// bunch of property assignments on selectedProfile ...
scope.$apply();
}, scope);
};
};
controllers.controller('Build', ['$scope', '$http', 'mango', Build]);
Обратите внимание, что я использую закрытия, чтобы сохранить объем и передать его в службу (для краткости опускаем). Служба вызывает меня как cb.call (context, ...), поэтому я поддерживаю доступ к области. Это все работает нормально, но меня больше беспокоит, есть ли более совершенная идиома. Я не вижу много примеров поддержки $ scope при делегировании таким сервисам.
EDIT: это приложение использует узел-WebKit и сервис «манго» в основном взаимодействует с файловой системой, чтобы взывать к сценарию оболочки и т.д.
Что такое doind mango.buildMango? есть угловые сервисы для автоматического управления таймаутом или XMLHttpRequest, поэтому вам не нужно делать такие вещи – Guillaume86
Приложение использует узел-webkit, и эта служба манго взаимодействует с файловой системой – user2276815
Хорошо, я бы вводил $ rootScope в службу манго и вызовите $ rootScope. $ apply() оттуда. Вам не нужно больше беспокоиться об этом, когда после этого вы будете использовать манго-сервис в других местах. – Guillaume86