这是demo,当我点击复选框" chooseAll",在控制台中有一个警告,说
Two-way binding does not work with expressions (`items.length===hasChooedItems().length` on <input>
,
我改变了ractive的版本形式&#34;最新的&#34;到&#34; 0.6.1&#34;当我点击&#34; chooseAll&#34;时,控制台出错,即Cannot read property 'split' of undefined
。为什么呢?
答案 0 :(得分:4)
使用最新版本获得的警告基本上可以保护您免受0.6.1。
中看到的错误的影响双向绑定仅适用于简单引用(如<input type='checkbox' value='{{foo}}'>
),因为Ractive知道如何在与该复选框交互时更新其模型,方法是切换foo
的值 - 更复杂的表达式不能使用双向绑定(如果value='{{a || b}}'
,则无法确定应该切换的是a
还是b
,例如)。因此,在这些情况下,我们必须自己监听change
事件并自行处理(因此on-change='toggleAll'
)。
较早版本的Ractive无法识别问题并尝试更新绑定,从而导致内部错误。现在,你预先得到警告。
您可以忽略它 - 它无害 - 或通过在输入上指定twoway='false'
来消除警告。这相当于说“没关系,Ractive,我得到了这个&#39;。这是第17行的fork of your fiddle更改。