Только что начал изучать ember.js и в настоящее время работает над TODO MVC из своего руководства. Я сейчас на этом месте: http://emberjs.com/guides/getting-started/show-when-all-todos-are-complete/Тип входа = 'checkbox' двусторонняя привязка не работает?
Я заметил, что если я перехватил свойство «checked» для вычисленного свойства, двусторонняя привязка не работает так, как я ожидал. Это вычисляемое свойство не будет обновлять значение, если я установил/снял флажок вручную.
Вот упрощенный пример (как если бы их примеры не достаточно просто):
Вот код руль. Я только добавил «{{allAreDone}}» элемент просто чтобы быть в состоянии видеть значение в реальном масштабе времени:
//...
<section id="main">
{{outlet}}
{{input type="checkbox" id="toggle-all" checked=allAreDone}}
{{allAreDone}}
</section>
//...
Здесь представлен JS сниппета для контроллера, но я упростил это такое, что это не основано на другой собственности :
// ...
allAreDone: function(key, value) {
return false
}.property()
// ...
Теперь, если я флажок (т.е. свойство 'проверено = истина), 'allAreDone' будет по-прежнему показывать ложные. Результат будет другим, если тип ввода - текст. Двухсторонний связывания флажок также будет работать, если это связано с не вычисленных собственности, таких как:
// ...
allAreDone: false
//will return false if I uncheked the checkbox directly and vice versa
// ...
Я просто хочу, чтобы подтвердить свое понимание поведения является правильным. И почему это будет отличаться от типа «текст».
Спасибо!
Вам нужно '.property ('_ allAreDone')' в конце и начальное значение для '_allAreDone', например, http://emberjs.jsbin.com/xubuja/1/edit?html,js,console, вывод – Kalman
Действительно! Благодарю. –
Спасибо. Раньше я думал, что текст по-разному. Но после того, как я попробовал еще раз, он выглядит совместимым с флажком. – ShadyStego