首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将逻辑移到视图或模型中,或者保持在模板中?

是否将逻辑移到视图或模型中,或者保持在模板中?
EN

Stack Overflow用户
提问于 2015-12-02 15:59:26
回答 1查看 64关注 0票数 0

在为一家引擎设计公司创建了一个使用主干的web应用程序之后,我想知道是否应该将“if /然后”逻辑从html模板中移出。

为了澄清我的意思,这里有两个我目前在生产中使用的例子。

如果我将If /然后的逻辑从模板中移出,我会将其移到视图中,但我不确定这是“正确的”方式还是“主干”方式。

我是做了糟糕的设计决策,还是做得还不错?

谢谢!

简单示例1:

认为:

代码语言:javascript
复制
//m is the model used by the view
return Backbone.View.extend({
    template: _.template(tmpl, null, { variable: 'm' }),

在模板中:

代码语言:javascript
复制
 {% if(m.title) { %}
      <h4> {%- m.title %} </h4>
 {% } else { %}
      <h4>Experiment Title Goes Here</h4>
 {% } %}

复杂示例2:

认为:

代码语言:javascript
复制
//args are the model attributes passed into the view
initialize: function (args) {
    this.currentEngine = args.currentEngine;
    this.engineDisplay = args.engineDisplay;
    this.engineType = args.engineType;
    this.isCurrent = this.model.isCurrent(this.currentEngine);

},

render: function () {

    this.$el.html(this.template({
    engineDisplay: this.engineDisplay,
    engineType: this.engineType,
    isCurrent: this.isCurrent;

}));

在模板中:

代码语言:javascript
复制
 {% if(!engineDisplay) { %}
        {% if (m.isCurrent && (engineType === 'GAS' || engineType === 'ECO')) { %}
            <span>Not Available</span>
        {% } else { %}
            <span>
                    <span>Click here to select</span>
            </span>
        {% } %}
 {% } %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 16:50:51

我认为你的第一次实施是正确的。不要把逻辑放在视野之外。“正确的”方法,或者说“主干”方法,是将逻辑保持在需要的地方:

  1. 模型/集合的代码为“哪里”的数据需要来自哪里。
  2. 视图包含“需要做什么/显示什么”的代码。(如果事件X发生,需要发生什么)
  3. 模板应该包含需要显示的“如何”代码。

我肯定我错过了东西..。我会等到评论告诉我我有多错,然后我会纠正它。

-Sheers

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34047236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档