2016-08-18 22 views
0

()而沒有()有什麼不同?淘汰賽有什麼不同data_bind

像:

data-bind="text: firstName" 
data-bind="text: firstName()" 

在我的ViewModel:

this.firstName = ko.observable("Ben"); 

無論是data-bind可以工作。那麼有什麼不同呢?

回答

0

無括號的可觀察值是可觀察值本身。用括號表示內容(觀察值所保持的值)。在大多數情況下,您可以使用/或,但對於雙向綁定(valuechecked),您需要能夠分配給observable,因此您需要而不是有括號。另一方面,如果你要表達一個表達,你需要內容。例如:!someBoolean()

1

也有類似的問題已經answered before

要點是,當使用text: firstName時,您將可觀察值傳遞給text綁定,並且在使用text: firstName()時,您將observable的值傳遞給綁定。在這兩種情況下,綁定的工作原理都是一樣的,因爲它是單向綁定,並且大多數綁定都設置爲使用可觀察值或普通值。但是,如果您使用的是雙向綁定(例如value),則需要使用第一種格式,以便綁定可以回寫到observable。