Ember.js Ember数据侧加载mockjax调用

Ember.js Ember数据侧加载mockjax调用,ember.js,ember-data,mockjax,Ember.js,Ember Data,Mockjax,我尝试通过mockjax为ember数据建模ajax调用 我的模型: 我试图通过mockjax加载order记录。(按下按钮。)根据呼叫后的控制台 MOCK GET: /orders/1 Object {url: "/orders/1", type: "GET", isLocal: false, global: true, processData: true…} 余烬数据尝试第二次呼叫 GET http://run.jsbin.com/services/%3CApp.Service:embe

我尝试通过mockjax为ember数据建模ajax调用

我的模型:

我试图通过
mockjax
加载
order
记录。(按下按钮。)根据呼叫后的控制台

MOCK GET: /orders/1 
Object {url: "/orders/1", type: "GET", isLocal: false, global: true, processData: true…}
余烬数据尝试第二次呼叫

GET http://run.jsbin.com/services/%3CApp.Service:ember518:1%3E 404 (Not Found) 
首先我不明白为什么是第二个电话?服务在我的订单JSON中被侧载

var order = {
  "order" : {"id":1,"service":1,"qty_unit":4},
  "service":[{"id":1,"name":"ENG-GER","service_prices":[1,2]}],
  "servicePrices":[
    {"id":1,"qty_unit":4,"unit_price":3},
    {"id":2,"qty_unit":5,"unit_price":4}
  ],
  "qtyUnits":[
    {"id":4,"name":"character"},
    {"id":5,"name":"word"},
    {"id":6,"name":"sentence"}   
  ]
};
为什么要尝试使用余烬数据调用记录
App.Service:ember518:1
,而不是其id“1”

这是JsBin

问题在于您的设置及其方法。您传递的是服务模型,而不是模拟端点所期望的id。ember518是在本例中由ember生成的服务模型实例的名称,该实例被传递,而不是id。修改后的方法是-

setQtyUnits:function(){

        var service_id = this.get('model.order.service.id');
        if (service_id !== null)
        {
          var self = this;
          //find returns a promise
          this.store.find('service',service_id).then(function(service){
            //on success
            var servicePrices = service.get('service_prices');
            var qtyUnits = servicePrices.mapBy('qty_unit');
            console.log(qtyUnits);
            self.set('qtyUnits', qtyUnits);
          });
        } else {
          this.set('qtyUnits', null);  
        }

  }.observes('model.order.service')
这是修改后的垃圾箱-

setQtyUnits:function(){

        var service_id = this.get('model.order.service.id');
        if (service_id !== null)
        {
          var self = this;
          //find returns a promise
          this.store.find('service',service_id).then(function(service){
            //on success
            var servicePrices = service.get('service_prices');
            var qtyUnits = servicePrices.mapBy('qty_unit');
            console.log(qtyUnits);
            self.set('qtyUnits', qtyUnits);
          });
        } else {
          this.set('qtyUnits', null);  
        }

  }.observes('model.order.service')