Подписка на beforeChange для зависимого объекта создает нежелательные зависимости - PullRequest
3 голосов
/ 02 апреля 2012

При использовании подписки с параметром beforeChange для зависимого объекта наблюдения он создает зависимости для любой наблюдаемой, принятой в обратном вызове, поскольку событие происходит во время обнаружения зависимости.

Например, сравнение текущего значения с предыдущим значением в обработчике приведет к бесконечной рекурсии, поскольку оно будет зависеть от самого себя.

Есть ли что-нибудь вокруг этого? Это ожидается? Это кажется противоинтуитивным Глядя на код, кажется, что событие можно легко вызвать за пределами обнаружения зависимостей.

Спасибо

1 Ответ

3 голосов
/ 02 апреля 2012

Уже есть проблема, зарегистрированная на Github для этой проблемы: https://github.com/SteveSanderson/knockout/issues/341

Надеемся, мы скоро сможем ее устранить.

На данный момент вы можете выбрать выполнение кода подписки.в setTimeout(function() { //your code here }, 0), который запустится, как только закончится текущее выполнение, что может или не может работать для вашего сценария.

...