혼란스럽고 도움이 될 수 있습니다.backbone.js 속성 및 toJSON() 이해하기
나는 렌더링 함수 내에서 그리고 난이 다음과 같은 세 가지 디버그 라인 :
console.debug(this.model);
foo = this.model.toJSON();
console.debug(foo);
첫 번째 줄의 출력은 서버에서 가져온 데이터와 모델 인스턴스 및 속성의 속성이 채워질 때 내가 기대하는 것과 함께.
그러나 두 번째 console.debug 호출에는 빈 객체가 들어 있습니다.
무엇을 제공합니까? 이 두 번째 비트 디버그 출력에는 동일한 속성이 포함되어 있지만 JSONified가 아니어야합니까?
아래 코드의 전체 비트는 다음과 같습니다
function get_race() {
var RaceModel = Backbone.Model.extend({
urlRoot: api_root + 'race/1/?format=json',
});
var RaceView = Backbone.View.extend({
template: _.template('<h1>a template</h1><h2>desc: <%= year %></h2>'),
initialize: function() {
this.model = new RaceModel();
this.model.fetch();
this.render();
},
render: function() {
console.debug(this.model);
foo = this.model.toJSON();
console.debug(foo);
this.$el.html(this.template(this.model));
return this;
}
});
var race_view = new RaceView({ el: $("#backbone_test") });
어떤 브라우저를 사용하고 있습니까? 나는 Firefox/Firebug에서 이와 같은 작업을 수행하고이 모델의 –
toJSON을 사용하여 모델 인스턴스의 속성 속성을 나타내는 객체를 반환해야합니다. 모델과 완전히 동일하지는 않습니다. 왜냐하면 모델 다른 속성과 메서드가 있으므로 속성을 보지 않아도 특별히보아야 할 내용을 말할 수는 없습니다. – kinakuta
추가 할 사항 중 하나는 this.model을 템플릿 함수에 전달하지 말고 this.model.attributes를 전달하십시오 – kinakuta