我正在尝试使用动态路由根据搜索字符串过滤数据。当transitionToRoute
从控制器使用该函数时,来自路由的模型数据会正确返回到视图,但是当直接导航到 url 或刷新页面时,所有 forEach 调用都不会被执行,因为模型中数据的长度为 0 .
我有一种感觉,这是因为数据是异步加载的,但我不确定如何延迟 forEach 循环和视图的呈现,直到find
' 的承诺得到解决并且 forEach 循环完成。
这是model
我的路由器的功能:
model : function( params ){
var lists = App.List.find( ), //gets all the lists
query = params.query, //query string from url
re = new RegExp( query, 'i' );
this.set( 'query', query );
return lists.forEach( function( list ){
var cards = list.get( 'cards' ).forEach( function( card ){
//the view has a class bound to the hide property of each card
card.set( 'hide',
( query.length ) ? !( re.test( card.get( 'description' ) ) ) : false
);
} );
return list;
});
}
当用户使用带有查询字符串的 url 访问应用程序时,#/search/red
我只希望返回其中包含“红色”的卡片。