KnockoutJS,Text vs Value Binding.为什么文本绑定不绑定到输入字段?

use*_*Bee 5 javascript asp.net-mvc knockout.js

来自Knockout教程:

为什么会这样?

 <p>First name: <input data-bind="value: firstName" /></p>
Run Code Online (Sandbox Code Playgroud)

虽然这不?

 <p>First name: <input data-bind="text: firstName" /></p>
Run Code Online (Sandbox Code Playgroud)

视图模型

// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
 function AppViewModel() {
this.firstName = "Bert";
this.lastName = "Bertington";
}
Run Code Online (Sandbox Code Playgroud)

Dam*_*ien 12

因为在html中,'input type ="text"'中的类型文本存储在名为value的属性中.

值绑定会影响元素的value属性,文本绑定会更改元素的内部文本.

通过写作

<input data-bind="text: firstName" />
Run Code Online (Sandbox Code Playgroud)

您正在尝试更改输入元素的内容.并且输入不允许内容.

<input value="where the value binding writes its data">
    where the text binding writes its data
</input>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.所以输入标签基本上没有文本属性. (2认同)
  • 不是"文字属性"; 在DOM术语中,`<input>`元素除了注释之外不能有任何子节点,`text`绑定创建`text`类型的子节点,浏览器将忽略它们. (2认同)