Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 Backbone.js-集合上的淘汰样式呈现_Javascript_Backbone.js_Knockout.js - Fatal编程技术网

Javascript Backbone.js-集合上的淘汰样式呈现

Javascript Backbone.js-集合上的淘汰样式呈现,javascript,backbone.js,knockout.js,Javascript,Backbone.js,Knockout.js,这两个框架都很棒,但我注意到Knockout喜欢指出,它能够只呈现添加到列表中的最新项目,而不是呈现整个列表。当然,这是大型应用程序的性能提升 下面是我所说的示例(请确保选中“显示渲染时间”框): 但是,这似乎是任何主流javascript框架都会有的——因为它非常重要 那么,这个功能是否也被烘焙到主干中,我将如何实现它呢?下面是一个主干示例,它就是这样做的 。。。 初始化:函数(){ this.input=this.$(“#新待办事项”); Todos.bind('add',this.add

这两个框架都很棒,但我注意到Knockout喜欢指出,它能够只呈现添加到列表中的最新项目,而不是呈现整个列表。当然,这是大型应用程序的性能提升

下面是我所说的示例(请确保选中“显示渲染时间”框):

但是,这似乎是任何主流javascript框架都会有的——因为它非常重要


那么,这个功能是否也被烘焙到主干中,我将如何实现它呢?下面是一个主干示例,它就是这样做的

。。。
初始化:函数(){
this.input=this.$(“#新待办事项”);
Todos.bind('add',this.addOne,this);
},
//通过创建一个视图将单个待办事项添加到列表中,然后
//将其元素附加到“
    ”。 addOne:函数(todo){ var view=newtodoview({model:todo}); $(“#待办事项列表”).append(view.render().el); }, ...
我最近遇到了这个,它正是我想要的:

Derick Bailey是一名非常熟练的JavaScript开发人员,下面是他撰写的关于主干网模型绑定的随附文章:

希望对其他人有帮助

编辑



Derick还有一个复合主干框架来帮助减少样板代码:

是的,我以前见过如何手动完成。从我所看到的情况来看,当将新元素推入其observableArray时,Knockout会自动执行此操作。我主要是想找出是否有一种方法可以自动进行绑定。这只是几行代码,如果你不能的话,也没什么大不了的。但是如果有插件或其他东西让主干自动执行,那就太好了。你可以创建一个自动绑定到集合添加事件的视图,然后扩展它以用于其他视图。
...
    initialize: function() {
      this.input    = this.$("#new-todo");
      Todos.bind('add',   this.addOne, this);
    },


    // Add a single todo item to the list by creating a view for it, and
    // appending its element to the `<ul>`.
    addOne: function(todo) {
      var view = new TodoView({model: todo});
      $("#todo-list").append(view.render().el);
    },
...