2012-05-03 6 views
0

knockout.jsとupshot.jsを使用して、サーバ上のAPIコントローラからアイテムのリストを取得しています。knockout.jsの関数に何かをバインドする方法

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

をしかし、のは、私は、テキストだけでなく、タイトルを表示したいとしましょう、しかし、タイトルといくつかの組み合わせ:プロパティにバインドするだけで正常に動作し

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

:これは基本的に私のビューモデルであります他の値? Title + ' ' + Idがほしいとしましょう。 hereから「例4」に基づいて、私はこのような何かを行うことができるはずと思っています:

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

値を計算するときのもう1つのオプションは、computed observableを使用して値を表します。

+0

data-bind = "text:Title + '' + Id"は、長い圧縮されたjavascript関数を出力として作成しました。しかし、data-bind = "text:Title()+" + Id()を使用すると、望ましい結果が得られました。 upshot.jsがデータソースとして返すものは、実際には観測可能です。ありがとうございました!!! –

関連する問題