Javascript 点击数据绑定
我在下面的示例中遇到了一个问题Javascript 点击数据绑定,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我在下面的示例中遇到了一个问题 HTML代码: <table id="items"> <thead> <tr> <td>ToDo List</td> </tr> </thead> <tbody data-bind="foreach: toDoItems"> <tr> &
HTML代码:
<table id="items">
<thead>
<tr>
<td>ToDo List</td>
</tr>
</thead>
<tbody data-bind="foreach: toDoItems">
<tr>
<td><label data-bind="text: toDoItem"></label></td>
<td><a href="#" data-bind="click: $root.removeToDoItem">Remove</a></td>
</tr>
</tbody>
</table>
Add item: <input type="text" id="newitem" />
<button data-bind="click: addnewItem">Add</button>
$(function () {
var MetalViewModel = function() {
var self = this;
self.toDoItems = ko.observableArray();
self.update = function() {
self.toDoItems.removeAll();
self.toDoItems.push(
new metals({"Task":"This is urgent task."}),
new metals({"Task":"You need to do it also."})
);
}
self.addnewItem = function () {
alert( $("#newitem").val() );
self.toDoItems.push(
new metals({"Task":$("#newitem").val()})
);
};
self.removeToDoItem = function(item) {
self.toDoItems.remove(item);
};
};
var MetalViewModel = new MetalViewModel();
var y = window.setInterval(MetalViewModel.update,1000);
ko.applyBindings(MetalViewModel, document.getElementById("items"));
});
var metals = function (data) {
return {
toDoItem: ko.observable(data.Task)
};
};
一切正常。正在列出、删除……我面临的唯一问题是,当我添加新项时,函数完全不起作用。。。表示即使我发出警报,单击绑定也不会到达那里。您仅使用vewmodel(
id=items
)绑定了表:
并且按钮位于表外,因此与viewmodel无关
作为解决方案,您可以绑定到公共父级或整个页面:
ko.applyBindings(MetalViewModel);
您仅使用vewmodel(
id=items
)绑定了表:
并且按钮位于表外,因此与viewmodel无关
作为解决方案,您可以绑定到公共父级或整个页面:
ko.applyBindings(MetalViewModel);
您仅使用vewmodel(
id=items
)绑定了表:
并且按钮位于表外,因此与viewmodel无关
作为解决方案,您可以绑定到公共父级或整个页面:
ko.applyBindings(MetalViewModel);
您仅使用vewmodel(
id=items
)绑定了表:
并且按钮位于表外,因此与viewmodel无关
作为解决方案,您可以绑定到公共父级或整个页面:
ko.applyBindings(MetalViewModel);
这里有两个问题:
- 无效绑定,而不是
ko.applyBindings(MetalViewModel,document.getElementById(“items”)代码>应该是
ko.applyBindings(MetalViewModel)代码>
- 无效的
函数名而不是数据绑定
应该是additemToAdd
addToDoItem
- 无效绑定,而不是
ko.applyBindings(MetalViewModel,document.getElementById(“items”)代码>应该是
ko.applyBindings(MetalViewModel)代码>
- 无效的
函数名而不是数据绑定
应该是additemToAdd
addToDoItem
- 无效绑定,而不是
ko.applyBindings(MetalViewModel,document.getElementById(“items”)代码>应该是
ko.applyBindings(MetalViewModel)代码>
- 无效的
函数名而不是数据绑定
应该是additemToAdd
addToDoItem
- 无效绑定,而不是
ko.applyBindings(MetalViewModel,document.getElementById(“items”)代码>应该是
ko.applyBindings(MetalViewModel)代码>
- 无效的
函数名而不是数据绑定
应该是additemToAdd
addToDoItem
这里有一个工作你能创建一个demo/jsfiddle链接吗?至于问题#2,显然是预期的行为,除非在http请求之间保存模型的状态代码>请检查是否已正确关闭所有大括号。请做一把小提琴。它将帮助人们识别fasterin订单调用的根本原因,为什么“addnewItem”不能成为现有模型的一部分?你能解释一下吗?我想GôTô已经在下面解释过了。你能创建一个demo/jsfiddle链接吗?至于问题#2,显然是预期的行为,除非在http请求之间保存模型的状态代码>请检查是否已正确关闭所有大括号。请做一把小提琴。它将帮助人们识别fasterin订单调用的根本原因,为什么“addnewItem”不能成为现有模型的一部分?你能解释一下吗?我想GôTô已经在下面解释过了。你能创建一个demo/jsfiddle链接吗?至于问题#2,显然是预期的行为,除非在http请求之间保存模型的状态代码>请检查是否已正确关闭所有大括号。请做一把小提琴。它将帮助人们识别fasterin订单调用的根本原因,为什么“addnewItem”不能成为现有模型的一部分?你能解释一下吗?我想GôTô已经在下面解释过了。你能创建一个demo/jsfiddle链接吗?至于问题#2,显然是预期的行为,除非在http请求之间保存模型的状态代码>请检查是否已正确关闭所有大括号。请做一把小提琴。它将帮助人们识别fasterin订单调用的根本原因,为什么“addnewItem”不能成为现有模型的一部分?你能解释一下吗?我想政府已经在下面解释了。是的,根据你的观点,你是对的。实际上,我无法从表中删除绑定ID,因为我将在一个模板中有多个数据绑定。因此,另一个提示是,我必须将我的按钮放入ID表中。成功了:)谢谢!是的,根据你的意见,你是对的。实际上,我无法从表中删除绑定ID,因为我将在一个模板中有多个数据绑定。因此,另一个提示是,我必须将我的按钮放入ID表中。成功了:)谢谢!是的,根据你的意见,你是对的。实际上,我无法从表中删除绑定ID,因为我将在一个模板中有多个数据绑定。因此,另一个提示是,我必须将我的按钮放入ID表中。成功了:)谢谢!是的,根据你的意见,你是对的。实际上,我无法从表中删除绑定ID,因为我将在一个模板中有多个数据绑定。因此,另一个提示是,我必须将我的按钮放入ID表中。成功了:)谢谢!