我正在尝试将视图模型中定义的ObservableArray
中的特定对象传递给带索引号的模板。
在我看来,它看起来像这样:
<!-- ko template: { name: "fooTemplate", with: FooCycles()[0] } --><!-- /ko -->
<script id="fooTemplate" type="text/html">
//some HTML for a individual FooCycle here
</script>
我收到Uncaught ReferenceError: Unable to process binding "template: function (){return { name:"fooTemplate",with:FooCycles()[0]} }"
错误。在with binding下,它仍然将它所属的父VM集中在我的JS调试器(Chrome)中。
我可以访问模型定义中用于多个ko.computed
属性的特定数组对象:
var fstsum = parseFloat(self.FooCycles()[0].sum());
var sndsum = parseFloat(self.FooCycles()[1].sum());
我可以在FooCycles
中使用foreach
毫无问题:
<!-- ko foreach: FooCycles -->
<div class="item">
<!-- ko template: { name: "fooTemplate", with: $data } --><!-- /ko -->
</div>
<!-- /ko -->
FooCycles()[0]
适用于javascript,但不适用于Knockout.js。有没有办法在Knockout中获取带索引的数组对象?
答案 0 :(得分:1)
Template binding未在受支持的&#34;附加&#34;下列出with
文档中提供的参数。
与foreach
合作的原因是:
data - 要作为要呈现的模板的数据提供的对象。 如果省略此参数,KO将查找foreach参数,或者将使用当前模型对象。
将with
更改为data
,如果是foreach
,您可以省略它。