gpt4 book ai didi

javascript - Backbone.js View 属性中的变量

转载 作者:行者123 更新时间:2023-11-28 20:09:04 25 4
gpt4 key购买 nike

我试图通过使用模型的属性作为 View 中的变量来渲染 HTML block 。

App = Backbone.Model.extend({
contentType: "text"
});

AppView = Backbone.View.extend({
ContentTpl: _.template( $('#slide-'+this.model.get('contentType')).html() ),

render: function(){
$('#wrapper').html( this.ContentTpl() );
}
});

var app = new App();
var appView = new AppView({model: app});
appView.render();

HTML:

<div id="wrapper">
</div>

<script type="text/template" id="slide-text">
<p>This is a test</p>
</scrip>

但这会导致错误......

最佳答案

你的观点定义错误。

你有

AppView = Backbone.Model.extend({

应该是

AppView = Backbone.View.extend({

并且,您无法在 View 初始化之前评估 this.model,请改为执行以下操作:

ContentTpl: function() {
return _.template( $('#slide-'+ this.model.contentType).html() );
},

并且,contentType不是模型属性,它是模型对象上的属性,不能使用get()。

要将其定义为模型属性,您必须将其定义为模型中的默认值,或者在实例化对象时传递它:

var app = new App({contentType: 'text'});

App = Backbone.Model.extend({
defaults: {
"contentType": "text"
}
});

关于javascript - Backbone.js View 属性中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com