2015-12-08 27 views
1

当我阅读文档的BindingContext上KnockoutJS website,它有一个代码示例像下面来说明$数据:是在foreach绑定语法有效

<ul data-bind="foreach: ['cats', 'dogs', 'fish']"> 
    <li>The value is <span data-bind="text: $data"></span></li> 
</ul> 

我非常新的KnockoutJS,我不知道是放在foreach绑定一个有效的用法之后的直接数组?而且在上面的情况下,似乎你可以省略applyBinding()来激活。所以我猜这样的语法只是为了说明的目的,它不是像真正的KnockoutJS应用程序那样有效的代码。

如果有人有类似的想法,并保证,你可以证实或纠正我?

回答

2

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

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

  1. 他们并不想在这里说明,其实他们给例如$数据的foreach。

  2. 对于文档的foreach采取alook here

要另一个你另一个问题 '似乎你可以使用applyBinding()来激活省略'

不,你不能忽略applyBinding。

看看下面的sinnpet代码不会给你想要的输出,除非在你的代码中添加ko.applybinding。

<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>

随着淘汰赛文档中引用

激活淘汰赛

数据绑定属性是不是当地的HTML,但它是完全 OK(这是严格遵守HTML 5,并且不会造成与HTML 4相关的问题,即使验证者会指出这是一个 无法识别的属性)。但是由于浏览器不知道它是什么意思,你需要激活Knockout来使其生效。

要激活基因敲除,下面的行添加到一个<脚本>块:

ko.applyBindings(myViewModel);