Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击数据绑定_Javascript_Jquery_Knockout.js - Fatal编程技术网

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表中。成功了:)谢谢!