如何为Ember Data指定主键?

时间:2014-04-14 14:56:25

标签: ember.js ember-data

我的服务器使用sensorID作为Sensor模型的主键。我尝试了以下

App.SensorSerializer = DS.RESTSerializer.extend({
  primaryKey: "sensorID"
});

基于我在this test中看到的内容,但它不起作用。我收到了错误:

Error while loading route: Error: No model was found for '0'

我使用自定义适配器。答案是JSONP:

jQuery203041337518650107086_1397489458691([{"sensorID":1,"address":"XXX, YYY","latitude":"nnnn","longitude":"mmmm"...

但是当我检查返回的数据时,它是一个正常的数组:

// App.SensorAdapter
findAll: function(store, type, sinceToken) {
  var url = 'http://blahblahblah/?callback=?';
  var query = { since: sinceToken };

  return new Ember.RSVP.Promise(function(resolve, reject) {
    jQuery.getJSON(url, query).then(function(data) {
      debugger;
      // data.forEach(function(s) {
      //   s.id = +s.sensorID;
      // });
      Ember.run(null, resolve, data);

    }, function(jqXHR) {
      jqXHR.then = null; // tame jQuery's ill mannered promises
      Ember.run(null, reject, jqXHR);
    });
  });

Ember Data 1.0.0-beta.7的正确语法是什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

App.Adapter.map('App.Sensor', {
  primaryKey: 'sensorID'
});