Ember js对来自控制器的this.get()请求进行回调?

时间:2014-03-07 12:59:14

标签: javascript ember.js

嗨,这可能是一个初学者问题,但我一直在努力弄清楚在从控制器发出this.get()请求时如何获得回调。

例如:

  

this.get( '模型')。然后(函数(){   //在这里做回调   })

当我尝试在我的控制器中执行此操作时,我收到错误“Uncaught TypeError:Object [object Object]没有方法'然后'”

我试图回复的原因是我正在尝试处理UI中的加载事件 - 例如在加载数据时显示微调器

2 个答案:

答案 0 :(得分:2)

我在尝试这是在我的模型的hasMany或belongsTo属性上。

如果关系属性被标记为异步,则此语法才有意义,因为我的不是。

我发现感谢@ S'pht'Kr你只需要.then(...)部分,如果有可能相关模型尚未加载 - 即属性确实包含DS.PromiseObject或DS.PromiseArray,即它是异步关系。

因此,将我的模型上的关系属性设置为 async:true 允许我使用'.then()'

来回复承诺

答案 1 :(得分:0)

您收到该错误的原因是this.get未返回承诺。

您可以在把手级别显示旋转器,我发现这是最清晰的方法。例如,如果您正在使用最终将填充一些数据的数组控制器:

{{#each}}
  <p>{{name}}</p>
{{else}}
  <div class="spinner">Loading content...</div>
{{/each}}