2012-05-03 33 views
0

我使用knockout.js和upshot.js來從服務器上的API控制項的列表。這基本上是我的視圖模型:如何綁定的東西的功能在knockout.js

self.templatesDataSource = upshot.dataSources.Templates.refresh(); 
self.templates = self.templatesDataSource.getEntities(); 

綁定到性能非常有效:

<div data-bind="foreach: templates"> 
    <a href="#" data-bind="text: Title"></a><br /> 
</div> 

但是,讓我們說,我想要的文字,不僅顯示標題,但標題和部分的組合其他值?假設我想要Title + ' ' + Id。基於「示例4」 here,我想我應該可以做這樣的事情:

<div data-bind="foreach: templates"> 
    <a href="#" data-bind="text: function(item){return item.Title + ' ' + item.Id; }"></a><br /> 
</div> 

但是,我看到了功能文本(function(item){...等),而不是結果。我也需要這個功能來爲鏈接構建適當的href。我怎樣才能做到這一點?

回答

2

,你可以只寫你的語句直接,如:

data-bind="text: Title + " " + Id" 

如果你的屬性是可觀察的話,你會怎麼做:

data-bind="text: Title() + " " + Id()" 

爲了針對href結合你會做:

data-bind="attr: { href: Url }" 

當你計算值的另一種選擇是使用computed observable來表示值。

+0

數據綁定=「文本:標題+‘’+ ID」導致了長壓縮javascript函數作爲輸出。然而,使用data-bind =「text:Title()+''+ Id()」產生了期望的結果。無論upshot.js如何返回,因爲數據源確實是可觀察的。謝謝!!! –