0

我想问一下 directory.views.SearchPage 的用途是什么?我可以像上面那样调用这个函数吗?可以调用页面加载吗?

directory.views.SearchPage = Backbone.View.extend({

templateLoader: directory.utils.templateLoader,
EmployeeListView: directory.views.EmployeeListView,

initialize: function() {
  this.template = _.template(this.templateLoader.get('search-page'));
},

render: function(eventName) {
  $(this.el).html(this.template(this.model.toJSON()));
  this.listView = new directory.views.EmployeeListView({el: $('ul', this.el), model:this.model});
  this.listView.render();
  return this;
},
events: {
  "keyup .search-key": "search"
},
// Start the search function
search: function(event) {
  var key = $('.search-key').val();
  this.model.findByName(key);
}
});
4

1 回答 1

2

据我了解,您想在页面加载时对主视图类进行初始化、渲染然后调用“共享”功能。由于 jQuery 可用,我会简单地使用:

var searchPage = new directory.views.SearchPage();
$(document).ready(function(e) {
    searchPage.render();
    searchPage.search(e);
});

但请注意:

  • 我看不到从 $(document).ready 传递事件参数的理由,或者至少在您的代码中根本没有使用它
  • 我的回答很笼统,因为问题很笼统(归结为“我如何在页面加载时调用函数?”)
  • 您使用 Backbone.View.extend 定义的内容有点类似于经典原型(不是真的,但会给您一个想法)。因此,您应该在访问它的方法和属性之前从这个扩展的“类”中实例化一个新实例。
于 2013-06-05T06:19:45.913 回答