У меня есть observableArray fieldChoices
, который содержит наблюдаемые как следующие: { name: ko.observable('new choice') }
Наблюдаемые уведомляет родителя ObservableArray
Я хочу, чтобы получить Наблюдаемые уведомить ObservableArray, который должен уведомить другую вычислен.
Я связывая их так:
<div data-bind="foreach: $parent.fieldChoices">
<div>
<i class="icon-caret-right"></i>
<input type="text" class="span8" data-bind="value: name(), test: name()" />
<i class="icon-arrow-up" data-bind="click: $parentContext.$parent.shiftChoiceUp, visible: $index() !== 0"></i>
<i class="icon-arrow-down" data-bind="click: $parentContext.$parent.shiftChoiceDown, visible: $index() !== ($parentContext.$parent.fieldChoices().length - 1)"></i>
<i class="icon-remove" data-bind="click: $parentContext.$parent.removeChoice, visible: $parentContext.$parent.fieldChoices().length > 2"></i>
</div>
</div>
Я не могу получить наблюдаемые уведомить наблюдаемый массив, когда name
значение изменяется. Я попытался добавить пользовательскую привязку test: name()
и известить оттуда. Проблема в том, что привязка не обновляется при изменении значения.
Как я могу заставить это работать?
EDIT: Несмотря на то, что есть подобные вопросы, я пытаюсь решить эту проблему с помощью специального связывания. Я не смог найти решения для этого подхода.
Моя основная цель - получить «вычисленный» для переоценки при изменении значения наблюдаемого. Я подумал, что есть способ получить подписку, когда значение изменяется в пользовательской привязке и оттуда, чтобы заставить «вычисленный» переоценить. Но я дам ему возможность использовать удлинители, потому что я должен его решить. – razvanz
@razvan Все, что вам нужно сделать, это просто создать функцию write: на вычисленном и записать на нее из этого расширителя ... –