有没有办法在保存模型时显示加载模板。
我可以在转换到不同路线时使用应用程序级别加载模板,但是当此时保存模型时,加载模板不会显示。
this.transitionTo(' routeName')将您带到loading.hbs,直到它从服务器获得承诺但是在执行model.save()时它没有显示。
答案 0 :(得分:1)
loading and error substates仅在加载路线时使用。在控制器操作期间无法调用它们(除非该操作加载新路径,但在这种情况下,状态仍然依赖于加载新路由,而不是操作)。
使用属性和部分:
执行操作时,仍然可以显示加载模板模板:
<!-- templates/components/user-account.hbs -->
{{#if busy}}
{{partial 'loading-template-name'}}
{{else}}
{{!-- template content --}}
<button {{action "save"}}>Save</button>
{{/if}}
组件:
// components/user-account.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
save: function () {
if (this.get('busy')) {
return;
}
this.get('user').save()
.then(() => {
// handle success
})
.catch((e) => {
// handle error
})
.finally(() => {
this.set('busy', false);
});
},
},
})