2015-10-23 3 views
0

Я новичок в AngularJS и хочу найти эффективное решение для моей проблемы.

У меня есть массив объектов, как

var list = [ 
{listprice: 100, salesprice:100, discount:0}, 
{listprice: 200, salesprice:200, discount:0}, 
{listprice: 300, salesprice:300, discount:0}, 
]; 

Salesprice могут быть изменены пользователем или обновляемый бэкэнда кодом. Мое требование - следить за каждой ценой продажи за изменения (будь то пользовательский интерфейс или бэкэнд) и обновлять соответствующую скидку только для этого объекта.

Я рассматривал возможность использования $ watch, но не могу понять, как использовать его для привязки к каждой продажной цене в массиве и соответствующей функции, которая меняет скидку.

+0

Похоже, что если вопрос отмечен как обман, должна быть предоставлена ​​ссылка на оригинал. –

ответ

2

предоставляется list в вашей $scope вы бы просто смотреть через:

$scope.$watch('list', function(newVal, oldVal){ 
    console.log('changed'); 
},true); 

Примечание последние параметры true для глубокого наблюдения требуется. Третий вариант является необязательным и относится к objectEqualityhttps://docs.angularjs.org/api/ng/type/ $ rootScope.Scope # $ watch

+0

Спасибо, что ответили, но это не отвечает на мой вопрос. Мне нужно, чтобы смотреть только продажи, а не весь список, и нужно обновить скидку на измененную цену продажи. – Drake

+0

хорошо, технически вы смотрите salesprice – Ronnie

Смежные вопросы