foreach绑定语法是否有效

时间:2015-12-08 01:42:26

标签: javascript knockout.js

当我在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应用程序中那样的有效代码。

如果有人有类似的想法并且有所保证,你能否确认或纠正我?

1 个答案:

答案 0 :(得分:2)

回答你的第一个问题 '我想知道在foreach绑定有效用法之后是直接数组吗? “

是的,只是为了说明目的,他们已将代码放在那里。如果你把代码放在sinppet代码中将无法工作,因为

  1. 他们不想在这里说明foreach事实上他们提供了$ data的例子。

  2. 对于foreach文档,请参考here

  3. 另一个问题 '似乎你可以省略使用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);