2013-06-05 2 views
0

나는 directory.views.SearchPage가 무엇인지 묻고 싶습니다. 위와 같이이 함수를 호출 할 수 있습니까? 페이지로드를 호출 할 수 있습니까?Jquery Backbone.View.extend 함수 호출

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); 
} 
}); 
+0

음, 네가 올바른 접근 방법 인 것 같습니다. 질문을 더 이해하기 쉽게 만들 수 있습니까? – sixFingers

+0

죄송합니다, actaully 내가 페이지로드를 원한다면 function (event), "ready"및 "load"이벤트 페이지를 코드하지만로드 할 때 트리거가 발생하지 않습니다. 페이지로드를 만드는 방법에 대한 질문이 있습니다. 이 기능을 실행 하시겠습니까? 또는이 검색을 호출하는 방법 : 함수 (이벤트) 외부 함수에서? – hungfei

답변

2

내가 이해, 당신은 초기화 렌더링 다음 페이지로드에서 메인 뷰 클래스의 "주"함수를 호출 할에서. jQuery를 사용할 수 있기 때문에, 내가 함께 간단하게 갈 것 :

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

그러나주의하시기 바랍니다 : 나는 이유가 표시되지 않습니다

  • 이 .ready $ (문서)에서 이벤트 인수를 전달하거나, 적어도 그것은 코드에서 전혀 사용하지 않는 것
  • 문제는 당신이 백본을 사용하여 정의합니다 무엇 (그것이 "내가 페이지로드에 함수를 호출하는 방법?"까지 도착)
  • 일반적이기 때문에 내 대답은 꽤 일반적입니다. View.extend는 고전적인 프로토 타입과 다소 비슷합니다 (실제로는 아니지만 아이디어를 제공합니다). 따라서 메서드 및 속성에 액세스하기 전에이 확장 "클래스"에서 새 인스턴스를 인스턴스화해야합니다.
+0

안녕 sixFingers, 나는 당신의 코드를 시험해 보지만 영향을 미치지 않으며 심지어 경고 할 수도 없다. var searchPage = new directory.views.SearchPage(); 승인? – hungfei

+0

@ user2453923 : sixFingers에서 제공하는 예제가 좋습니다. 보기를 초기화 할 때 오류가 발생하지 않았습니까? 브라우저 콘솔을 확인 했습니까? – dcarson

+0

Uncaught TypeError : underscore-min.js에서 undefined의 'replace'메서드를 호출 할 수 없습니다. – hungfei