繁体   English   中英

Emberjs处理异步Ajax调用的好方法

[英]Emberjs a good way to handle async ajax calls

我是emberjs的新手,想知道什么是处理以下内容的最佳方法:

视图:

{{#if model}}
  <p>I exist</p>
{{else}}
  <p>Login first</p>
{{#if}}

在我的JS中:

App = Em.Application.create({});

App.MyRoute = Em.Route.extend({
  setupController: function(){
    $.get("some/ajax/call",function(data){
        controller.set('model', data)});
    }
  }
}};

在上面的示例中,setupController将完成并刷新<p>Login First</p>然后当数据从ajax调用到达时,它更改为<p>I exist</p>我尝试在模型中执行此操作,结果是一样的

目前,我使用一些jquery来隐藏和取消隐藏内容以解决此问题,但我认为这不是最好的方法吗? 对我来说似乎有点脆弱。 任何建议都会非常有帮助

谢谢

您可以使用afterModel挂钩执行任何检查。 这个钩子触发jQuery返回的模型,但在setupController之前。

model: function() {
  return $.get("some/ajax/call",function(data){
      return data;
  }
},

afterModel: function(model) {
  // if model is not valid 
  // transitionTo another route etc
}

请注意,您只是从jQuery promise返回data 恩伯(Ember)明白,当一个承诺用价值解决时,它就是model

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM