助手绑定不更新

Helper binding not updating

我有这样的帮手:

import Ember from 'ember';

export function bootstrapModelStatus(model) {
    if(model.get('isDeleted')) {return 'danger'};
    if(model.get('isError')) { return 'danger'};
    if(!model.get('isValid')) { return 'warning'};
    if(model.get('isSaving')) { return 'info'};
    if(model.get('isNew')) { return 'default'};
    if(model.get('isDirty')) { return 'warning'};
    if(model.get('isLoaded')) { return 'success'};
    return 'error';
}

export default Ember.Handlebars.makeBoundHelper(bootstrapModelStatus);

它绑定到一个 DS.Model 像这样:

{{bootstrap-model-status model}}

麻烦的是当模型状态发生变化时,上面的内容不会更新。相反,我不得不执行以下操作。

{{bootstrap-model-status model model.currentState.stateName}}

有更好的方法吗?

您可以告诉助手在您传入的模型的 属性 发生更改时重新显示 - 请参阅 here

在您的情况下,这意味着以下内容:

import Ember from 'ember';

export function bootstrapModelStatus(model) {
  if(model.get('isDeleted')) {return 'danger'};
  if(model.get('isError')) { return 'danger'};
  if(!model.get('isValid')) { return 'warning'};
  if(model.get('isSaving')) { return 'info'};
  if(model.get('isNew')) { return 'default'};
  if(model.get('isDirty')) { return 'warning'};
  if(model.get('isLoaded')) { return 'success'};
  return 'error';
}

export default Ember.Handlebars.makeBoundHelper(bootstrapModelStatus, 
  'isDeleted', 'isError', 'isValid', 'isSaving', 'isNew', 'isDirty',   'isLoaded'
);