在keyup上初始化一个视图到多个视图- backbone
Initialising a view on keyup to many views - backbone
我有一些搜索功能,我正在工作,每次用户输入文本输入我过滤一个集合,这里是代码,
userSearch: function() {
var that = this;
var letters = $('.js-user-search').val();
this.filteredCollection.reset(that.filterUsers( that.collection, letters));
var resultsList = new app.SearchUserResults({
collection: this.filteredCollection
});
resultsList.render();
},
filterUsers: function( collection, filterValue) {
var filteredCollection;
if (filterValue === "") {
return collection.toJSON();
}
return filteredCollection = collection.filter(function(data) {
return _.some(_.values(data.toJSON()), function(value) {
if( value != undefined ) {
value = (!isNaN(value) ? value.toString() : value);
//var re = /^(([^<>()[']''.,;:'s@'"]+('.[^<>()[']''.,;:'s@'"]+)*)|('".+'"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'])|(([a-zA-Z'-0-9]+'.)+[a-zA-Z]{2,}))$/;
return value.indexOf(filterValue) >= 0;
}
});
});
}
从上面的代码中可以看到,我将一个集合(用户)和搜索参数传递给filterUsers(),然后返回一个匹配模型的集合。然后我试图将其呈现为搜索结果(链接)的列表,但是这些链接上的事件运行多次(取决于搜索字符串的长度)。
如何从返回集合中构建结果列表?我试着添加,
this.filteredCollection.on('reset', this.doSomething);
然而,这似乎从来没有得到运行,我已经尝试在初始化函数中初始化我的结果视图,但我不能将集合传递给该视图,因为它是空的,最好的方法是什么?
你必须小心使用骨干中的视图。您不断添加新的搜索结果视图,而不删除旧的。始终保留对多次添加的视图的引用,以便可以删除前一个视图。我想这部分会对你有所帮助:
var myCurrentSearchList = null;
userSearch: function() {
var that = this;
var letters = $('.js-user-search').val();
this.filteredCollection.reset(that.filterUsers( that.collection, letters));
if (myCurrentSearchList) {
myCurrentSearchList.remove();
}
var resultsList = new app.SearchUserResults({
collection: this.filteredCollection
});
myCurrentSearchList = resultsList;
resultsList.render();
},
http://backbonejs.org/View-remove
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- JQuery合并了keyup和focusout两个函数
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 根据某些条件在视图之间切换
- ng视图外的链接重定向到ng视图内的页面
- 如何在Jquery中发布后将值从视图返回到控制器
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 使用Scala Play Framework视图中的键检索映射值
- FF视图源|脚本高亮显示为红色
- 如何使bxslider仅在移动视图中处于活动状态
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 在backbonejs视图中,keypress/keyup/keydown事件是否仅适用于输入,而不适用于其他元素
- 在keyup上初始化一个视图到多个视图- backbone