0
컬렉션에있는 항목 수를 표시하려면 어떻게합니까? collection.models.length
또는 collection.length
을 사용하려고했습니다. 심지어 Backbone.Collection
에 count()
이라는 메서드를 만들어서 컬렉션의 길이를 반환하기는했지만 아무 일도 일어나지 않습니다.백본이있는보기에 컬렉션 항목 수 표시
템플릿 :
<p>you have <span class="caller-num">0</span> missed calls.</p>
컬렉션 :
// callers collection
define([
'jquery',
'underscore',
'backbone',
'models/caller'
], function($, _, Backbone, Caller) {
var CallersList = Backbone.Collection.extend({
model: Caller,
url: 'js/json/callers.json',
// had to do this because it's the 'callers' key that has the array of objects, the json
parse: function(data) {
return data.callers;
},
count: function() {
return this.length;
}
});
return CallersList;
});
부재 중 전화가보기 :
define([
'jquery',
'underscore',
'backbone',
'collections/callers-list',
'views/callers-view',
'views/missed-called-num-view'
], function($, _, Backbone, CallersList, CallersView, MissedCallsNumberView) {
var AppView = Backbone.View.extend({
el: '.app',
initialize: function() {
_.bindAll(this, 'render');
this.render();
var callers = new CallersList;
callers.fetch({ reset: true });
this.$el.find('.caller-num').text(callers.models.length);
},
render: function() {
var callersView = new CallersView({ collection: CallersList }),
mcn = new MissedCallsNumberView({ collection: CallersList });
this.$el.append(callersView.render().el);
this.$el.find('header').append(mcn.render().el);
}
});
return AppView;
});
,691 : 부재중 전화
define([
'jquery',
'underscore',
'backbone',
'collections/callers-list',
'text!templates/missed-calls-number-template.html'
], function($, _, Backbone, CallersList, missedCallsNumTemplate) {
var MissedCallsNumberView = Backbone.View.extend({
el: '.number-of-callers',
template: _.template(missedCallsNumTemplate),
initialize: function() {
var callers = new CallersList;
this.$el.find('.caller-num').text(callers.count());
//this.$el.find('.caller-num').text($('.caller').length); /* this doesn't work either */
},
render: function() {
this.$el.html(this.template(this.model));
return this;
}
});
return MissedCallsNumberView;
});
앱 조회 수를 보여주는
Thanks @ Hazaart. AppView, Missed Call View 등 어디서 코드를 작성합니까? 나는이. $ el.find ('. caller-num') .text (callers.length);'를 시도했기 때문에 이전에는 작동하지 않았다. 'console.log'를 실행하는 경우에도 항상 '0'이 표시됩니다. 어떻게됩니까? – Shaoz
@Shaoz 제 대답을 업데이트했습니다.이 방법을 시도해보십시오. – Hazaart
수정 사항을 시도했지만 여전히 작동하지 않습니다. 모든 뷰에서 컬렉션을 만들었으므로 어떤 뷰를 말하고 있습니까? – Shaoz