【发布时间】:2016-10-31 20:32:38
【问题描述】:
我正在学习淘汰赛,这是我的第一个例子,所以请温柔。
我只想要从模型到文本框的单向绑定,即模型中的任何内容都必须显示在文本框中。我还不想创建 observables。
这是我的,但是当我运行这段代码时,文本框不包含模型值,控制台报错:
TypeError: c is null
这是我的代码:
1.html
<html>
<head>
<meta charset="utf-8"/>
<script type='text/javascript' src='knockout-3.4.0.js'></script>
<script type='text/javascript' src='1.js'></script>
</head>
<form id = "frm" name = "frm">
<fieldset>
<legend>Your friend's basic information</legend>
<div>
<label for = "FirstName">First Name</label>
<input type = "text" name = "FirstName" id = "txtFirstName" data-bind = "value: friend.firstName" />
</div>
<div>
<label for = "LastName">Last Name</label>
<input type = "text" name = "LastName" id = "txtLastName" data-bind = "value: friend.lastName" />
</div>
</fieldset>
</form>
</html>
1.js
var model =
{
friend :
{
firstName : 'Sathyaish',
lastName : 'Chakravarthy'
}
};
ko.applyBindings(model);
看起来淘汰赛无法绑定嵌套属性。由于我要绑定的属性不是model 对象的直接成员,而是嵌套在model.friend 中,因此无法绑定它。
当然不可能我不能有一个层次模型,并且我只能在属性是model 对象的顶级成员时才能绑定?
我很可能在语法上做错了什么。
【问题讨论】: