Ember.js Ember数据侧加载mockjax调用
我尝试通过mockjax为ember数据建模ajax调用 我的模型: 我试图通过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
加载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')