На фабрике я это:наблюдающие объекты завода - angularjs
$http.get('/api/whatever').success(function(data) {
result = data.obj
});
В контроллере я не могу наблюдать никаких изменений. Но я не должен, если я использую ссылку на result
как:
angular.module('aModule')
.controller('TheCtrl', function ($scope, MyFactory) {
$scope.ifOnly = MyFactory.result;
});
В отличие, если я, например:
$http.get('/api/whatever').success(function(data) {
result.foo = 'foo';
result.bar = 'bar';
});
Объект в контроллере получает изменение.
Вопрос в том, что ссылка должна быть замечена, но изменение значения не?
EDIT:
В контроллере я попытался:
$scope.$watch('MyFactory.result', function(newVal, oldVal){
console.log('changed');
console.log(oldVal);
console.log(newVal);
}, true);
Бревно:
changed
undefined
undefined
..as окончательный ответ. Я просто не верю, что копирование значения объекта по значению - это путь.
нет, его один и тот же вопрос. Я просто не понимаю, почему ссылка не замечена, а измененное значение. – Stefan
"результат" есть новый адрес после результата = данные.obj – Nicol
да, смотрю. Думаю ты прав. Но ваша рекомендация в любом случае приводит к такому же плохую репутацию :( – Stefan