0

我在 Backbone 中使用 Marionette Views。

在我的模板中,我想从模型获取的数据中提取名称属性。该模型已被填充,我可以通过console.log正确的结果看到,但是当我尝试在模板中输出它时:

<script type="text/html" id="sample-template">
<h1><%= campaign ? campaign.get('name') : '' %></h1>
</script>

我收到消息: 活动未定义 我也尝试过 attributes.get('name')、CampaginModel.get('name') 和 model.get('name') 但得到相同的错误

Marionette 有不同的做法吗?如果有,我应该怎么做?

看法:

var campaginView = Backbone.Marionette.ItemView.extend({

        initialize: function (options) {
            this.campaign_id = options.id;
            this.model.fetch();
        },

        model: new CampaginModel({
            id: this.campaign_id
        }),

        template: campaignTemplate,

    }); 

模型的控制台日志:

_changing: false
_pending: false
_previousAttributes: Object
attributes: Object
      modified: "2013-11-08T18:57:44"
      name: "test"
      user: Object
__proto__: Object
changed: Object
cid: "c2"
__proto__: s
4

1 回答 1

1

基于对木偶文档的简短了解,我敢打赌,您将模型属性的序列化 json 表示传递给您的模板,而不是模型对象本身,试试这个:

<script type="text/html" id="sample-template">
<h1><%= name ? name : '' %></h1>
</script>

把它想象成传递给模板的值是:

model.toJSON()

请参阅ItemView 序列化数据

于 2013-11-14T17:38:07.640 回答