Tim*_*Tom 29 javascript jquery knockout.js
我是Knockout的初学者,我必须说我经常对何时使用感到困惑().是否有任何一般的提示/技巧,当你()不愿意使用时,因为目前我正在进行反复试验.如果绑定抛出错误或不更新值,我删除()其他我放.
Kye*_*ica 53
我觉得现有的答案会跳过一个非常重要的混乱点:data-bind属性.
确实,当您使用Javascript时,您可以使用parens,并获取或设置observable.但是当你写作时data-bind="text: property",即使与可观察者一起工作,你也会遗漏这些内容.
如下面的注释所述,作为表达式的绑定或observbles的访问属性需要parens
visible: personName().length > 0
visible: person().Name().length > 0
visible: person().isVisible
Run Code Online (Sandbox Code Playgroud)
需要注意的是最后一个person和isVisisble都是观测的,但最后一个属性不使用括号!这样做的原因是我们将一个值传递给绑定而不是一个observable,它不会更新.
Nop*_*ope 21
()在使用observable或执行任何其他方法时,您可以在knockout中使用.Knockout observables是函数,用于返回您要查找的内容或允许您分配新值.
在淘汰赛中,您使用object.property()检索值并object.property(newValue)为该属性分配值.
在淘汰网站上查看文档,特别是关于observables的部分,它向您展示了()查询和编写可观察对象时的使用.
报价:
var myViewModel = {
personName: ko.observable('Bob'),
personAge: ko.observable(123)
};
Run Code Online (Sandbox Code Playgroud)
要读取observable的当前值,只需调用没有参数的observable.在此示例中,myViewModel.personName()将返回"Bob",myViewModel.personAge()将返回123.
要向observable写入新值,请调用observable并将新值作为参数传递.例如,调用myViewModel.personName('Mary')会将名称值更改为"Mary".
要将值写入模型对象上的多个可观察属性,可以使用链接语法.例如,myViewModel.personName('Mary').personAge(50)会将名称值更改为"Mary",将年龄值更改为50.
Knockout的互动教程也非常好,非常值得一试.