视图中的条件项或单独的视图?

时间:2013-01-03 16:59:02

标签: backbone.js backbone-views

假设我有一个基本模板 - 让我们称它为“shell”,它为我提供了3个div(top,left,main)。在我的顶部div中,我附加了一个导航栏视图。导航栏视图有一个“登录”链接,我希望在用户登录时将其更改为“注销”。这最好是使用模板中的逻辑还是建议改为创建这些单独的视图和如果是这样,我在哪里可以最好地处理显示逻辑?我很确定这是我需要做这种事情的唯一例子。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

另一半中的六个。即使您将逻辑放在模板中,该模板仍然需要您传递一个标志,指示它是“登录”还是“已注销”模式,以及该标志必须来自何处(如果你正在做标准的Backbone)?一个观点。

所以你的问题确实让我感到很沮丧,因为它本身就是一种选择:

var MyView = Backbone.View.extend({
    template: compile('Logged {{if loggedIn}}In{{else}}Out{{/if}}'),
    render: function() {
        this.$el.html(this.template(this.loggedIn);
    }
});

或:

var MyView = Backbone.View.extend({
    template: compile('Logged '),
    render: function() {
        this.$el.html(this.template() + (this.loggedIn ? 'In' : 'Out'));
    }
});

根据您的评论:

  

我很确定这是我需要做这种事情的唯一例子。

我建议不要打扰模板逻辑,因为......为什么要这么麻烦?但最终没有错误的答案。