我有一个具有简单搜索表单的主干应用程序,当用户在此搜索中写一些东西时,我使用高速公路订阅搜索表单上的给定文本(例如 - 我搜索“foo”,我订阅“foo”)。
如何分离高速公路逻辑?目前在我看来,当用户点击提交时,我会做接下来的事情 -
// On view:
onUserSearch : function(evt) {
evt.preventDefault();
var searchText = this.$el.find("#searchBox").val();
// searchResultsCollection is an instance of Backbone.Collection
SearchFeed.subscribe(searchBox, searchResultsCollection)
}
// SearchFeed subscribe method
subscribe : function(topic, collection) {
session.subscribe(topic, function(result) {
collection.add(result);
});
}
在我看来,我在我的收藏中听“添加”,并为每个结果创建一个视图并渲染它。
我认为我的代码结构不正确 -
1.“SearchFeed.subscribe”是否在正确的位置?我可以在我的视图中执行此代码吗?也许它应该在模型上?
2. 集合更改(传递给订阅,SearchFeed 更改它然后收听“添加”)管道是正确的方法吗?