Knockout.js 绑定到简单字符串数组

Knockout.js 绑定到简单字符串数组,knockout.js,jquery-templates,Knockout.js,Jquery Templates,如果我想将模板绑定到一个普通的字符串数组,我应该在${???}表达式中添加什么 我希望这段代码不要太短,以免混淆: <ul data-bind="template: { name: 'authorTemplate', foreach: authors }"> </ul> 我尝试过:valvaluethis和this.toString()。最后两个显示了[object object],所以我怀疑我离这里很近。,答案是: 使用模板时: ${$data} 不使用模板时: $d

如果我想将模板绑定到一个普通的字符串数组,我应该在${???}表达式中添加什么

我希望这段代码不要太短,以免混淆:

<ul data-bind="template: { name: 'authorTemplate', foreach: authors }">
</ul>
我尝试过:
val
value
this
this.toString()
。最后两个显示了[object object],所以我怀疑我离这里很近。

,答案是:

使用模板时:
${$data}

不使用模板时:
$data

对于未命名数组(类似JSON的:[“value1”、“value2]”),它应该是:

<ul data-bind="foreach: $root">
 <li data-bind="text: $data"></li>
</ul>

$root关键字起作用。

谷歌用户可以对$data或文档链接进行解释。我似乎找不到答案——我从他们的谷歌小组那里得到了这个答案。你碰巧有链接吗?恐怕没有,但假设它在jQuery模板文档中,或者(如果它特定于knockoutjs)在knockoujs文档中。如果不使用模板,
foreach
文档有一个相关的链接,这将是
是的-上面的代码用于jQuery模板。很早以前就抛弃了这一点,使用了本机敲除模板,现在确实可以这样做了。实际上,
$root
表示传递给
ko.applyBindings
的对象。因此,只有执行类似于
ko.applyBindings([“value1”、“value2”]、document.getElementById(“MyValueList”)的操作时,这才有效。如果要绑定页面上的任何其他内容,最好将其作为viewmodel上的命名成员,或者可以像这样将数组写入绑定:
foreach:[“value1”、“value2”]
。有关更多信息,请参阅。
<ul data-bind="foreach: $root">
 <li data-bind="text: $data"></li>
</ul>