我在视图中添加了一个模型attribut:
app.ActorView = Backbone.View.extend({
modelImg:'', ....
我跳到渲染部分,因为其他一切都没问题:
render: function () {this.$el.html(this.template({
modImg: this.modelImg.toJSON(),
mod: this.model.toJSON(),
movies: this.collection.toJSON()}
视图中的每个模型(model,collection和modelimg)都在项目的rooter部分中正确获取:
modActor.fetch().done(function () {
modActorMovies.fetch().done(function () {
modImgActor.fetch().done(function () {
var actorView = new app.ActorView({
modelImg: modImgActor,<--problematic model
model: modActor,
collection: modActorMovies
});
我的modImgActor定义如下:
app.ActorImg= Backbone.Model.extend({
url: "http://umovie.herokuapp.com/unsecure/actors/272994458/movies",
parse: function (response) {
return response.results[0];
}
});
问题是我在modelImg上使用toJson()函数。存在以下错误:this.modelImg.toJSON不是函数
可以用它的url定义模型吗?
答案 0 :(得分:0)
modImg
不是Backbone.View
的标准选项。所以骨干就会忽略它。
您必须手动处理随选项传递的自定义属性。
所以你的视图定义应该是
app.ActorView = Backbone.View.extend({
initialize: function(options){
this.modelImg = options.modelImg;
}
}):