我想在检索数据时显示加载程序文本,在检索数据时显示另一个文本,但结果为零。
这是我目前的模板:
<h3>Items</h3>
<ul>
{{#each item in controllers.items}}
<li>{{ title }}</li>
{{else}}
<li>No items found</li>
{{/each}}
</ul>
但现在文本:No items found
也会在检索数据时显示。
Emberjs可以使用以下模板吗?
<h3>Items</h3>
<ul>
{{#each item in controllers.items}}
<li>{{ title }}</li>
{{else if loading}}
<li>Loading....</li>
{{else}}
<li>No items found</li>
{{/each}}
</ul>
答案 0 :(得分:1)
这不太可能是你的方式,但我这样做,我正在为我的控制器添加一个加载标志,以便我可以在模板中访问它:
<h3>Items</h3>
<ul>
{{#if loading}}
I am loading your items!
{{else}}
{{#each item in controllers.items}}
<li>{{ title }}</li>
{{else}}
<li>No items found</li>
{{/each}}
{{/if}}
</ul>
所以你的Controller看起来像这样使用超时方法来重置加载标志:
App.YourController = Ember.ArrayController({
loading : false, // set this property, when you are loading new content into the controller
resetLoadingObserver : function(){
// this gets triggered on each modification to the array
// we want to reset the loading property, once all new items have been added
var that = this;
$.doTimeout("resetLoadingFlag", 100, function(){
that.set("loading", false)
});
}.observes("content.@each")
});