EmberJS,帮助程序和计算属性

弗吉伦

我有一个帮助器,它接收元素数组并根据第一个返回其他数组。

{{#each (sorted-strings myStrings) as |string|}}
  {{string}}
{{/each}}

Helper的实现可以如下所示:

// app/helpers/sorted-strings.js
import Ember from 'ember';

export function sortedStrings(params/*, hash*/) {
  return params[0].sort();
}

export default Ember.Helper.helper(sortedStrings);

助手工作正常,但如果原始myString阵列都发生改变的更改不会影响已经呈现的列表。

如何合并ComputedProperty的行为Helper的结果

弗吉伦

经过大量的努力,我才知道正确的解决方案是声明一个Component而不是Helper这样,我可以显式声明一个计算属性,该属性观察myStrings数组中的更改

// app/components/sorted-strings.js
export default Ember.Component.extend({
  myStrings: null,
  sortedMyStrings: Ember.computed('myStrings', function() {
    return this.get('myStrings').sort();
  });
});

// app/templates/components/sorted-strings.hbs
{{#each sortedMyStrings as |string|}}
  {{string}}
{{/each}}

// template
{{sorted-strings myStrings=myStrings}}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章