淘汰赛data_bind有什么不同

时间:2016-08-18 22:13:52

标签: knockout.js

()()之间有什么不同?

像:

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

在我的viewModel中:

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

data-bind都可以。那有什么不同呢?

2 个答案:

答案 0 :(得分:1)

有类似问题answered before

要点是,在使用text: firstName时,您将观察者传递给text绑定,并且在使用text: firstName()时,您传递的值是可观察到的约束力。在这两种情况下,绑定都将起作用,因为它是单向绑定,并且大多数绑定都设置为使用可观察值或普通值。但是,如果您使用的是双向绑定,例如value,则需要使用第一种格式,以便绑定可以写回到observable。

答案 1 :(得分:0)

没有括号的可观察者是可观察者本身。使用括号,它是内容(可观察值保存的值)。在大多数情况下,您可以使用/或,但对于双向绑定(df['source_code'] = df.source.astype('category').cat.codes >>> df source target weight source_code 0 1 70399 0.988375 0 1 1 33919 0.981573 0 2 1 62461 0.981427 0 3 579 1 0.983019 1 4 745 1 0.995580 2 5 834 1 0.980943 3 value),您需要能够分配给observable,因此您需要 not 有括号。另一方面,如果要表达,则需要内容。例如:checked