当我在KnockoutJS website上阅读BindingContext的文档时,它有一个代码示例,如下所示:$ data:
<ul data-bind="foreach: ['cats', 'dogs', 'fish']">
<li>The value is <span data-bind="text: $data"></span></li>
</ul>
我对KnockoutJS很新,我想知道在foreach绑定一个有效的用法之后是直接数组吗?而且在上面的情况下,似乎你可以省略使用applyBinding()来激活。所以我想这样的语法只是为了说明目的,它不是像真正的KnockoutJS应用程序中那样的有效代码。
如果有人有类似的想法并且有所保证,你能否确认或纠正我?
答案 0 :(得分:2)
回答你的第一个问题 '我想知道在foreach绑定有效用法之后是直接数组吗? “
是的,只是为了说明目的,他们已将代码放在那里。如果你把代码放在sinppet代码中将无法工作,因为
他们不想在这里说明foreach事实上他们提供了$ data的例子。
对于foreach文档,请参考here
另一个问题 '似乎你可以省略使用applyBinding()来激活'
不,你不能省略applyBinding。
除非在代码中添加ko.applybinding,否则查看以下sinnpet代码将无法提供所需的输出。
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<ul data-bind="foreach: [ 'Jan', 'Feb', 'Mar', 'etc' ]">
<li>
The current item is: <b data-bind="text: $data"></b>
</li>
</ul>
<script type="text/javascript">
//ko.applyBindings();
</script>
如Knockout文档中引用
激活淘汰赛
data-bind属性不是HTML的原生属性,尽管它非常完美 好的(它在HTML 5中严格遵守,并且不会导致任何问题 HTML 4即使验证器会指出它是一个 无法识别的属性)。但由于浏览器不知道它是什么 意思是,你需要激活Knockout才能使它生效。
要激活Knockout,请将以下行添加到&lt; script&gt;块:
ko.applyBindings(myViewModel);