내부적으로 Backbone.js를 사용하는 jQuery 위젯을 만들고 있습니다.Backbone.js 클래스 내에서 jQuery 위젯의 인스턴스 속성에 액세스하는 방법은 무엇입니까?
Serializer = function(options, element){
this.element = element;
this.data = options.data;
this.collection = new Serialize.Collection(this.data);
this.view = new Serialize.View({ el: this.element, collection: this.collection });
};
$.widget.bridge("serialize", Serializer);
$.widget.bridge이 (레일에 의해 설정됩니다 여기 @vars
)를 위젯의 인스턴스를 생성 및 옵션에 전달하는 친절한 래퍼를 제공합니다 :
다음은 컬렉션 뷰는 자신의 서브 뷰를 생성 모델을 생성
$('#item').serialize({
data: <%= @data %>,
name: '<%= @name %>',
keys: '<%= @keys %>'
});
나중에 생성 된 모델 및 뷰는 위젯 인스턴스의 옵션에 액세스해야합니다.
this.collection = new Serialize.Collection(this.data, options);
그리고 그들은 (예를 들어 뷰에서) 필요한 경우 나중에 참조 : 지금까지 콜렉션 자체의 옵션을 설정하여이 문제를 해결
var keys = this.model.collection.keys
하지만이 지저분 얻고 아니다 그 융통성.
단일 인스턴스의 경우 Serialize.Config = { // options }
을 설정하고 전역으로 액세스 할 수 있습니다. 그러나 여러 인스턴스의 경우 각 인스턴스마다 고유 한 구성이 필요합니다.
제 질문은 위젯 인스턴스와 그 옵션을 백본 클래스 내에서 인수로 전달하지 않고도 액세스 할 수있는 명확한 방법이 있습니까?
감사합니다, 그 좋은 접근 방법 같아. 모든 것을 초기화하는 위젯 인스턴스에 해당하는 하나의 마스터보기 아이디어가 마음에 들다. 나는 또한 마스터 뷰 내부에서 컬렉션을 만드는 것으로 옮길 것이고, 조금 '시작'을 느끼기 시작할 것이라고 생각한다. :) – meleyal
사실, 그것도 더 깨끗할 것이다! 컬렉션은 마스터 뷰의 일부이므로 안전하게 만들 수 있습니다. 위의 스크립트를 적절하게 변경하십시오. – poezn