【问题标题】:Ember Data for Non Standard Rest Calls非标准休息调用的 Ember 数据
【发布时间】:2016-07-29 10:12:42
【问题描述】:

对于 ember 来说很新很抱歉,如果有任何愚蠢的话,我试图在 ember 中创建一个自定义适配器和序列化器,通过扩展 DS.RESTadapter 和 Rest 序列化器,我成功地获得了响应并按摩数据以适应模型需要,但是我无法使用模型属性获取模板中的模型值,但是我有一种获取值的方法,请您以正确的方式帮助我

型号

App.Weather = DS.Model.extend({
    name   : DS.attr('string'),
    temperature  : DS.attr('string'),
    humidity : DS.attr('string'),
    description : DS.attr('string'),
});

适配器

App.ApplicationAdapter = DS.RESTAdapter.extend({

    buildURL: function(item) {
        return "http://website/weather?q=" + item['q']+ "&appid="+item['appid'];
    },

    findQuery: function(store, type, query) {
        return this.ajax(this.buildURL(query), 'GET');
    }
});

序列化器

App.ApplicationSerializer = DS.RESTSerializer.extend({

    extractArray: function(store, type, payload) {
        var weathers = [{
            id: 1 // Id hard coded
        }];


        weathers[0]["name"]=payload["name"];
        weathers[0]["temperature"]=payload["main"]["temp"];
        weathers[0]["humidity"]=payload["main"]["humidity"];
        weathers[0]["description"]=payload["weather"][0]["description"];
        weathers[0]["type"]=payload["weather"][0]["main"];

        payload = { weathers: weathers };

        return this._super(store, type, payload);
    }
});

路线

App.WeatherIndexRoute = Ember.Route.extend({
    model: function(params) { 
        //debugger;
       return this.store.find('weather',{q:"London", `enter code here`appid:"b552aef423b1cf586b62d1ab1d4ef216"});

    },
    renderTemplate: function() {
        this.render('default');
    },
    setupController: function(controller, model) {

        **controller.set('model', model.content[0]);**
    }
})

如上所述,我正在获取 model.Content Array 下的所有值。

不理解你我将不得不做 model.content 而不仅仅是模型。以及它为什么会这样嵌套自己。

我使用的是旧版本的 ember ember-1.1.2.js

【问题讨论】:

标签: ember.js ember-data ember-cli


【解决方案1】:

如果您正在尝试学习 Ember,请不要使用找不到文档的版本。如果您不能使用 2.x 版本,请下载 1.13。

如何处理非标准 REST 响应的最简单方法是修改 normalize() 方法 [http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_normalize],它应该接受您拥有的任何响应并以序列化程序所需的格式创建 JSON。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多