Ember.js - Call parent model hook to load data for child

喜欢而已 提交于 2019-12-05 09:55:25

The devices.index route is not the parent route, it's another leaf route. Typically you would define the model on the resource route and then access through the leaf routes:

App.Router.map(function(){
    this.resource('index', { path: '/' } );
    this.resource('devices', { path: '/devices'}, function() {
        this.route('device', { path: ':imei'});
    });
});

Master route:

App.DevicesRoute = Ember.Route.extend({
    model: function() {

        var self = this;
        return requestController.get({
            url: "foo/bar/",
            success: function(data) {
                console.log(data);
                return data;
            },
            error: function() {
                console.log("error");
                return [];
            }
        });
    }
});

Index route: (in future ember versions this will automatically pick up parent's model)

App.DevicesIndexRoute = Ember.Route.extend({
    model: function() {
        this.modelFor('devices');
    }
});

Detail route:

App.DevicesDeviceRoute = Ember.Route.extend({
    model: function(args) {
        var model = this.modelFor('devices').findBy('imei', args.imei);
        return model;
    }
});
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!