보기에 매개 변수를 전달하는 방법
클릭하면 버튼 바로 가기에 팝업 메뉴가 표시되는 아래의 버튼이 있습니다. 버튼의 위치를 뷰에 전달하고 싶습니다. 어떻게 할 수 있습니까?
ItemView = Backbone.View.extend({
tagName: 'li',
events: {
'click': 'showMenu'
},
initialize: function() {
_.bindAll(this, 'render');
},
render: function() {
return $(this.el).html(this.model.get('name'));
},
showMenu: function() {
var itemColl = new ItemColl();
new MenuView({collection: itemColl}); // how to pass the position of menu here?
}
});
MenuView를 구성 할 때 추가 매개 변수를 전달하기 만하면됩니다. initialize
기능 을 추가 할 필요가 없습니다 .
new MenuView({
collection: itemColl,
position: this.getPosition()
})
그 다음에 MenuView
, 당신은 사용할 수 있습니다 this.options.position
.
UPDATE : 로 @mu이 너무 짧은 상태입니다 1.1.0 이후, 백본보기가 더 이상 자동으로 this.options로 생성자에 전달 옵션을 부착 없지만, 당신이 선호하는 경우에 당신이 그것을 스스로 할 수 있습니다.
따라서 귀하의 initialize
방법에서 options
전달되는 것을 다음 과 같이 지정 하실 수 있습니다 .this.options
initialize: function(options) {
this.options = options;
_.bindAll(this, 'render');
},
또는 @Brave Dave 가대로 더 미세한 방법을 사용하십시오 .
다음 인수 옵션 추가 initialize
:
initialize: function(options) {
// Deal with default options and then look at options.pos
// ...
},
그런 다음보기를 만들 때 몇 가지 옵션을 전달합니다.
var v = new ItemView({ pos: whatever_it_is});
자세한 정보 : http://backbonejs.org/#View-constructor
백본 1.1.0부터는 options
인수가 더 이상 뷰 에 자동으로 첨부되지 않은 ( 토론을 위해 문제 2458 참조 ). 이제 각보기의 옵션을 수동으로 첨부해야합니다.
MenuView = Backbone.View.extend({
initialize: function(options) {
_.extend(this, _.pick(options, "position", ...));
}
});
new MenuView({
collection: itemColl,
position: this.getPosition(),
...
});
또는 이 미니 플러그인 을 사용하여 다음 과 같이 화이트리스트 옵션을 자동 첨부 할 수 있습니다 .
MenuView = Backbone.View.extend({
options : ["position", ...] // options.position will be copied to this.position
});
다른 위치에서 지나가 다
new MenuView({
collection: itemColl,
position: this.getPosition()
})
옵션 인수를 추가하여 전달 된 변수를 가져옵니다.
initialize: function(options) {
// Deal with default options and then look at options.pos
// ...
},
가치 사용을 얻을려면-
var v = new ItemView({ pos: this.options.positions});
this.options 를 사용 하여하여보기에서 인수자 를 검색합니다.
// Place holder
<div class="contentName"></div>
var showNameView = Backbone.View.extend({
el:'.contentName',
initialize: function(){
// Get name value by this.options.name
this.render(this.options.name);
},
render: function(name){
$('.contentName').html(name);
}
});
$(document).ready(function(){
// Passing name as argument to view
var myName1 = new showNameView({name: 'Nishant'});
});
작동 예 : http://jsfiddle.net/Cpn3g/1771/
참고 URL : https://stackoverflow.com/questions/7803138/how-to-pass-parameters-to-a-view
'IT' 카테고리의 다른 글
코드에서 RecyclerView의 스크롤바를 활성화하는 방법이 있습니까? (0) | 2020.08.29 |
---|---|
HTML 태그를 HTML로 이스케이프하는 가장 빠른 방법은 무엇입니까? (0) | 2020.08.29 |
데이터 프레임에 행 추가 (0) | 2020.08.29 |
Vuex 작업에서 약속 반환 (0) | 2020.08.29 |
함수가 이미있는 경우 어떻게 제거합니까? (0) | 2020.08.29 |