助手绑定不更新
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'
);
我有这样的帮手:
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'
);