javascript - Emberjs 类似 ajax 请求在 Helper 中返回

标签 javascript ajax asynchronous ember.js

经过多次查找和尝试,我相信在 Emberjs 帮助中无法从 ajax 请求返回值。 (我希望我错了。)我相信原因是整个 ansyc 回调的事情。

这就是我的困境;

我有一个父模型 A,它有模型 B 的子模型。我想显示父模型和子模型以及一些额外的信息。额外信息来自使用模型 B 的一些信息的 api 调用。我不会在模型 B 上保存这些额外信息,但我想显示它。基本上,我有这样的东西:

{{#each modelb in modela.modelbs}}
...
{{/each}}

我希望能够做一些事情:

{{#each modelb in modela.modelbs}}
  {{get-info modelb}}
{{/each}}

它返回我能够从 api 调用中获取的信息。

我尝试使用我之前说过的助手。我尝试在 Controller 中放入一些逻辑,但无法隔离各个子模型来创建计算属性。 (另外,我不确定计算机属性是否会对我有帮助,我认为它需要一个返回语句,这使我回到与助手相同的问题,并且我不认为我可以在子关系上创建计算属性。 )虽然我从 api 调用中获得了所需的额外信息,但我无法将其与我的子模型 B 关联起来。

我想我并没有以“ Ember 方式”思考这个问题。希望有更好的方法来解决这个问题。

任何帮助将不胜感激。

最佳答案

这就是我最终得到的结果。

在我的 route 我写道:

export default Ember.Route.extend({
  //model is already loaded from parent route.
  setupController: function(controller, model){
    var modela = model; //just for clarity with the whole modela/modelb thing.
    modela.get('modelbs').forEach(function(modelb){
      $.ajax({
        //some ajax call using modelb's information.
      }).then(function(data){
        //extraInformation is not a model definted property on modelb, but I just added extraInformation as an index to modelb.
        modelb['extraInformation'] = data;
        controller.set('model', modela);
      });
    });
  }
});

然后在我的模板中我写道:

{{#each modelb in modela.modelbs}}
  {{modelb.extraInformation}}
{{/each}}

希望这对某人有帮助。

关于javascript - Emberjs 类似 ajax 请求在 Helper 中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29983765/

相关文章:

php - 强制浏览器重新读取ajax结果

javascript - 使用一个 AJAX html 结果填充多个 div 标签

objective-c - 返回零长度数据的 NSURLConnection

javascript - 为什么我的超时要等到等待完成后,但我的日志却没有?

javascript - 如何为某些 HTML 标签存储任意数据

javascript - 通过参数查找node.js

php - 用 PHP 文件中的内容替换 div 内容

javascript动画不循环

javascript - jquery clone() 和追加 li

linux - 如何在 perl 中使用 O_ASYNC 和 fcntl?