Javascript 敲除-变量值包含函数体
当我试图访问新创建的元素的值时,我得到函数体作为变量值 在 单击添加名称 在新添加的行中输入姓Kate。 单击“显示所有名称”按钮。 在弹出窗口中,将显示函数体而不是Kate。我可以使用name.FirstName使用第一个元素,使用name.FirstName使用其余元素 在这个场景中,在循环迭代中是否有一致的方法来获取firstname的值 我的HTML代码是:Javascript 敲除-变量值包含函数体,javascript,knockout.js,Javascript,Knockout.js,当我试图访问新创建的元素的值时,我得到函数体作为变量值 在 单击添加名称 在新添加的行中输入姓Kate。 单击“显示所有名称”按钮。 在弹出窗口中,将显示函数体而不是Kate。我可以使用name.FirstName使用第一个元素,使用name.FirstName使用其余元素 在这个场景中,在循环迭代中是否有一致的方法来获取firstname的值 我的HTML代码是: <table> <tbody data-bind="foreach: names">
<table>
<tbody data-bind="foreach: names">
<tr>
<td>
<label>First Name:</label>
</td>
<td>
<input data-bind="value: FirstName" type="text">
</td>
<td>
<label>Last Name:</label>
</td>
<td>
<input data-bind="value: LastName" type="text">
</td>
</tr>
</tbody>
</table>
<button data-bind="click: addName">Add Name</button>
<button data-bind="click: showAllNames">Show All Names</button>
FirstName和lastName字段应该是可观察的,因为您可以通过UI进行更改
因此,您需要将这些转化为ko.observatives,如下所示:
var namesArray = [{
"FirstName": ko.observable("Tom"),
"LastName": ko.observable("Langdon")
}];
现在项目将只有可观察的。这就是您需要更改showAllNames函数的原因:
ko.utils.arrayForEach(self.names(), function (name) {
namestring += name.FirstName() + "\n";
});
您还可以使用函数自动将原始js对象转换为可观察对象优秀答案。正是我想要的!!。现在,我明白了,我可以在JSON本身中声明可观察对象。
ko.utils.arrayForEach(self.names(), function (name) {
namestring += name.FirstName() + "\n";
});