javascript - 操作后 Ember 更新模型

标签 javascript json ember.js

我有一个在页面加载时加载一些 JSON 数据的 ember 模板,有一些按钮,当单击这些按钮时,我需要进行不同的 json 调用并更新模型。

在此代码中一切正常,但在触发操作并进行 json 调用后模型未更新。

我该如何解决?

App.DatRoute = Ember.Route.extend({ 
    model: function(parms){
        return Em.RSVP.hash({
            datam : Ember.$.getJSON('URL')
        });    
    },
    afterModel: function(){
      $(document).attr('title', 'Title');  
    },
    renderTemplate: function() {
      this.render();
      this.render('fter', { into: 'outlet', outlet: 'fter' });
  },
  actions :{
    action: function(){
        return Em.RSVP.hash({
           datam : Ember.$.getJSON('URL', {data}) 
        });
    }
}
});

谢谢

最佳答案

因为您没有做任何更新模型的事情。 Ember 对操作的返回值不做任何处理,无论是 promise 还是其他。您需要将操作放在 Controller 上,并使用从 ajax 调用返回的数据设置模型:

action: function() {
    var self = this;
    Ember.$.getJSON('URL', {data})
        .then(function(result) {
            self.set('model', result);
        });
}

或者我的风格,完全等价

action: function() {
    var set = this.set.bind(this, 'model');
    Ember.$.getJSON('URL', {data}).then(set);
}

关于javascript - 操作后 Ember 更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824974/

相关文章:

python - 在 Python 中以特定格式从嵌套 JSON 对象中提取数据

php - 如何将json数组数据插入mysql?

javascript - Noty(通知库)对话框具有透明背景 - AngularJS Web 应用程序

javascript - 如何修复 Internet Explorer 列宽

javascript - console.log(obj) 和 console.log(JSON.stringify(obj)) 之间的区别

javascript - 如何修改 ember 应用程序的主 ember cli 应用程序树

javascript - 在 Glimmer js 中设置和初始化路由

javascript - Ember.js - 将 maxBinding 添加到 Ember.TextField

javascript - 解决导出/导入问题

javascript - onload 将值两次加载到两个输入字段中