2012-12-18 44 views
0

在knockout.js我們有一個最基本的文本結合一個基本的例子:動態設置在數據綁定綁定

Today's message is: <span data-bind="text: myMessage"></span> 

<script type="text/javascript"> 
    var viewModel = { 
     myMessage: ko.observable() // Initially blank 
    }; 
    viewModel.myMessage("Hello, world!"); // Text appears 
</script> 

這是直接從教程http://knockoutjs.com/documentation/text-binding.html 如果我想有定義變量實際的綁定屬性。這可能看起來像這樣:

Today's message is: <span data-bind="myBinding: myMessage"></span> 

<script type="text/javascript"> 
    var viewModel = { 
     myMessage: ko.observable(), // Initially blank 
     myBinding: ko.observable(), // Initially blank 
    }; 
    viewModel.myMessage("text"); 
    viewModel.myMessage("Hello, world!"); // Text appears 
</script> 

上面的代碼顯然是錯誤的,但是正確的情況是什麼?我正在研究諸如ko.applyBindingsToNode(Can I dynamically bind element inside custom binding?)之類的東西,但Google FU這次完全失敗了,因爲我發現的大多數東西都是將動態構建元素應用到動態綁定,而不是動態綁定動態綁定類型。

回答

1

您不能將observable用作自定義綁定類型。 Observable的用於存儲數據。

通過使用Custom BindingComputed Observables可以獲得所需的功能。就個人而言,如果這是您需要一次特殊的事情,那麼使用Computed Observable。否則,請使用自定義綁定。

+1

賓果!我計算出了計算結果:) – povilasp