2014-06-06 63 views
0

我試圖將在我的視圖模型中定義的ObservableArray中的特定對象傳遞給具有索引號的模板。knockoutjs:綁定到具有索引號中的特定Observable Array對象的模板

在我看來,它看起來像這樣:

<!-- 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 bind下,它仍然將它所屬的父虛擬機集中在我的JS調試器(Chrome)中。

我可以訪問我的模型定義一個特定的陣列對象,用於幾個ko.computed性質:

var fstsum = parseFloat(self.FooCycles()[0].sum()); 
var sndsum = parseFloat(self.FooCycles()[1].sum()); 

我可以在foreach使用FooCycles沒有問題:

<!-- ko foreach: FooCycles --> 
    <div class="item"> 
    <!-- ko template: { name: "fooTemplate", with: $data } --><!-- /ko --> 
    </div> 
<!-- /ko --> 

FooCycles()[0]在JavaScript中工作,但不能在Knockout.js中工作。有沒有辦法在Knockout中獲得帶索引的數組對象?

+0

我認爲我解決了我的問題。我應該使用數據:不與:. <! - ko template:{name:「fooTemplate」,data:FooCycles()[0]} - > 它是在文檔中編寫的。這工作正如我所料。謝謝閱讀。 [「模板」綁定] :http://knockoutjs.com/documentation/template-binding.html – 5330info

回答

1

Template binding沒有with在文檔中提供的支持的「附加」參數下列出。

能與您的foreach的原因是由於:

數據 - 對象提供的數據模板來呈現。 如果省略此參數,則KO將查找foreach參數,或者將回退使用當前的模型對象。

更改withdata並在foreach你可以忽略它的情況。

相關問題