LINUX.ORG.RU

История изменений

Исправление Y, (текущая версия) :

наврал

Директиву закоменть. Закоменть этот обработчик в директиве.

В контроллере, как минимум, нужен вызов $apply.

Убери проверку «newVal !== oldVal». Проверку надо убрать потому, что:

The listener is called only when the value from the current watchExpression and the previous call to watchExpression are not equal

т.е., проверка избыточна.

Не переживай, watch для объектов делает глубокое сравнение, так что, если listener вызвался, можешь смело items обновлять.

Кстати, проверка if (newVal) наверное, также, в твоём случае будет лишней, потому что никто ведь в твоём коде не собирается удалять items? Но код она не ломает.

Работает?

Исправление Y, :

Директиву закоменть. Закоменть этот обработчик в директиве.

В контроллере, как минимум, нужен вызов $apply.

Убери проверку «newVal !== oldVal». Проверку надо убрать потому, что:

The listener is called only when the value from the current watchExpression and the previous call to watchExpression are not equal

т.е., проверка избыточна.

И потому что проверка «newVal !== oldVal» будет всегда возвращать false, потому что items — массив, меняются его поля, а указатель на массив (хранящийся в items, newVal и oldVal один и тот же).

Не переживай, watch для объектов делает глубокое сравнение, так что, если listener вызвался, можешь смело items обновлять.

Кстати, проверка if (newVal) наверное, также, в твоём случае будет лишней, потому что никто ведь в твоём коде не собирается удалять items? Но код она не ломает.

Работает?

Исправление Y, :

Директиву закоменть.

В контроллере, как минимум, нужен вызов $apply.

Убери проверку «newVal !== oldVal». Проверку надо убрать потому, что:

The listener is called only when the value from the current watchExpression and the previous call to watchExpression are not equal

т.е., проверка избыточна.

И потому что проверка «newVal !== oldVal» будет всегда возвращать false, потому что items — массив, меняются его поля, а указатель на массив (хранящийся в items, newVal и oldVal один и тот же).

Не переживай, watch для объектов делает глубокое сравнение, так что, если listener вызвался, можешь смело items обновлять.

Кстати, проверка if (newVal) наверное, также, в твоём случае будет лишней, потому что никто ведь в твоём коде не собирается удалять items? Но код она не ломает.

Работает?

Исходная версия Y, :

Директиву закоменть.

В контроллере, как минимум, нужен вызов $apply.

Убери проверку «newVal !== oldVal».

Работает?