Я изучаю нокаут, и это мой первый пример, поэтому, пожалуйста, будьте осторожны.Как получить эту простую одностороннюю привязку с нокаутом для работы?
Я просто хочу, чтобы односторонняя привязка от модели к текстовым полям, то есть все, что находится в модели, должно отображаться в текстовых полях. Пока я не хочу создавать наблюдаемые.
Вот что у меня есть, но когда я запускаю этот код, текстовые поля не содержат значения модели, а консоль выдает сообщение об ошибке:
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
?
Я, скорее всего, что-то не так с синтаксисом.
Большое спасибо. За 4 минуты до зеленого чек. :-) –
@ WaterCoolerv2, добро пожаловать. Должен быть в состоянии принять его сейчас) –