如何使用一个模板打印2个不同的值

时间:2013-02-06 14:54:59

标签: backbone.js backbone-views

在我的json数据中,我得到projectNameassignedTo值(它在所有数据中累积),

示例数据:

  [ {projectName:'project1',assignedTo:'some1'},{projectName:'project2',assignedTo:'some2'}]

我的模板是:(包括我困惑的东西)

<script id="listTemplate" type="text/template">
    <a href="#"><%= projectName === projectName ? projectName : taskStatus%></a>//not works how can i mange?
</script>

在我看来,我正在转换模型"toJSON()",但我在2个链接中单独获取项目名称。

我的请求,是否可以使用单个模板打印两个不同的值? - 作为第一次我需要打印项目名称,以后的taskStatus有一些条件,如果有任何建议请

1 个答案:

答案 0 :(得分:1)

之所以不断打印项目名称是因为,在模板中,你有......

<a href="#"><%= projectName === projectName ? projectName : taskStatus%></a>

projectName总是等于projectName。在这种情况下你想要做的是,在你的Backbone.View中,当序列化模型以供模板使用时,你可以这样做......

Backbone.View.extend({
    events: {
        // An example on how to change the display
        'click button.change-display': 'onChangeDisplayClicked'   
    },
    template: _.template(...),

    // Controls whether project name should be shown or not.
    showProjectName: true,

    onChangeDisplayClicked: function() {
        // Flip the switch
        this.showProjectName = !this.showProjectName;

        // Re-render the View
        this.render();
    },

    serialize: function() {
        // Grab the data from model
        var data = this.model.toJSON();

        // Pass this data to the template to control what to be displayed.
        data.showProjectName = this.showProjectName;
        return data;
    },

    render: function() {
        this.$el.html(this.template(this.serialize()));
    }
});

...在你的模板中,你会...

<script id="listTemplate" type="text/template">
    <a href="#"><%= showProjectName ? projectName : taskStatu s%></a>
</script>