В моем многопользовательском приложении AngularJS у меня есть объект модели в моей области. Эта модель может управляться как с помощью ввода пользователем, так и с сервера.
У меня есть наблюдатель $watch для отслеживания модели и обновления пользовательского интерфейса. Можно ли определить источник/причину моего обновления модели из моей функции $watch? Без этой проверки у меня проблемы с циклами обратной связи (например, UI → Server → UI).
ОБНОВЛЕНИЕ: некоторый код
Контроллер:
$scope.elementProperties = { left: 0 };
$scope.$watch('elementProperties.left', function(newVal, oldVal) { changeSelectedElementProperty('left', newVal, oldVal); } );
Директива
angular.module('myapp.ui-editor').directive('myappPropertiesPanel', function () {
return {
templateUrl: 'views/ui-editor/myappPropertiesPanel.html',
restrict: 'A',
scope: { elementProperties: '=' },
link: function postLink (scope, element, attrs) {
scope.$watch('elementProperties.left', function(newVal, oldVal) { console.log('PropertiesPanel change left', newVal, oldVal); } );
}
};
});