Javascript 使用easyxdm的主干模型覆盖提取

Javascript 使用easyxdm的主干模型覆盖提取,javascript,backbone.js,Javascript,Backbone.js,我试图使用easyXDM覆盖主干模型获取功能,使用easyXDM的原因是服务器位于不同的域上 以下是获取代码: fetch: function(options) { model = this; a = true; this.xhr.request({ url: "http://server.dev:9000/users/" + this.id, method: "GET"

我试图使用easyXDM覆盖主干模型获取功能,使用easyXDM的原因是服务器位于不同的域上

以下是获取代码:

     fetch: function(options)
     {
        model = this;
        a = true;
        this.xhr.request({
           url: "http://server.dev:9000/users/" + this.id,
           method: "GET"
        }, function(response){
           console.log(response.data);

           var jsonResponse = JSON.parse(response.data);

           if (jsonResponse.status == 'success'){
             model.set({
                firstName : jsonResponse.data.first_name,
                lastName :   jsonResponse.data.last_name,
                email : jsonResponse.data.email,
                companyName : jsonResponse.data.company.name,
                companyId : jsonResponse.data.company.id
             }) 
           }
        });

     }
下面是获取模型的控制器的代码

    var user = new UserModel({id : id});
    user.fetch();
    alert(user.get('firstName')); // display undefined
所以问题是,每当我调用fetch时,模型仍然没有填充。 我这样想是因为easyXDM请求是异步的,所以它还没有被填充。 是否有方法确保模型已填充并准备好使用?
也许是使用回调,关于如何创建回调有什么指导吗?

对不起,我一开始误解了你的问题。Fetch是异步的,有easyXDM也有easyXDM,因此在对其执行任何操作之前,您必须实现Fetch的onsuccess回调,或者检查是否设置了模型(使用length或其他方法)。这篇文章也可能有帮助:


没错,但是除了触发事件之外,还有其他方法可以让这项工作正常进行吗?是的,使用他在回答中提到的成功回调对不起,Hiexone的评论是在我编辑我的答案之前,我编辑了完整的Anklythanks Jordan以供您解释,但我仍然对如何触发easyXDM的成功回调感到困惑,你能提供一个适用于我的情况的示例代码吗?我的理解是我应该这样做
user.fetch({success:function(){alert(“model已填充”);})这是正确的吗?但是在模型上,我如何指定它是成功的,这样它将进入成功回调?谢谢你,明白了!我只需要调用easyXDM请求成功部分的options.success()。感谢您的帮助!