0

假设我有一个基本模板 - 我们称它为“shell”,它为我提供了 3 个 div(顶部、左侧、主)。在我的顶部 div 中,我添加了一个导航栏视图。导航栏视图有一个“登录”链接,我想在用户登录时将其更改为“注销”。这最好用模板中的逻辑完成,还是建议改为制作这些单独的视图和如果是这样,我最好在哪里处理显示逻辑?我很确定这是我需要做这种事情的唯一实例。谢谢你的帮助。

4

1 回答 1

1

一个半打中的六个。即使您将逻辑放在模板中,该模板仍然需要您向它传递一个标志,指示它是处于“登录”还是“注销”模式,以及该标志必须来自哪里(如果你在做标准的骨干)?一个看法。

所以真的你的问题让我觉得本质上是在以下之间进行选择:

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'));
    }
});

根据您的评论:

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

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

于 2013-01-03T17:54:46.160 回答