Jquery Backbone.View.extend函数调用

时间:2013-06-05 06:03:46

标签: jquery backbone.js

我想问一下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);
}
});

1 个答案:

答案 0 :(得分:2)

根据我的理解,您希望在页面加载时初始化,渲染然后调用主视图类上的“共享”功能。由于jQuery可用,我只想简单地使用:

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

但请注意:

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