如果我使用这个插件:https://github.com/jmurphyau/ember-truth-helpers
比方说,有很多,
{{#if (eq model.beautiful true) }}
或
{{#if (或 (eq model.beautiful true) (eq model.crazy true) ) }}
Ember 在后台创建什么?相同的 javascript 也可以像下面这样计算属性:
isBeautiful: Ember.compulated.equal('model.beautiful', true);
等等?
如果我有 30 个计算属性(Ember 宏和自定义宏),最好使用此插件还是默认的 Ember 方式?
我想知道,因为在某些模板中我可以多次出现类似的内容!:
{{#if (或 (eq model.beautiful true) (eq model.crazy true) ) }}
而不仅仅是这个:
{{#if isBeautifulOrCrazy }}
就性能而言,最佳解决方案是什么?
最佳答案
我认为用户不会注意到任何差异。我的选择是尽可能减少代码和更好的可维护性。就您而言,如果您有超过 3 条相同的行 {{#if (or (eq model.beautiful true) (eq model.crazy true) ) }}
,我建议您计算属性(property)。它将使模板变得更加简单, Controller 也变得更大。如果您在几个模板中具有完全相同的行,则可以在模型上创建计算属性,因此它将是 {{#if model.isBeautifulOrCrazy }}
。或者模板助手。
what is Ember creating in background?
任何助手都只是一个返回某个值的函数。 eq
帮助器将如下所示:
function eq([l, r]) {
return l === r;
}
当 ember 渲染模板时,它会评估此函数,然后使用它的值。如果参数之一发生更改,则会发生重新渲染。我认为在幕后它与 CP 类似。
关于javascript - Ember 2,使用 ember-truth-helpers 等插件进行表演,而不仅仅是 Ember 默认方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143207/