使用ember-cli时如何显示实际的型号名称?

时间:2014-08-21 17:51:15

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

使用ember-data和ember-cli时,控制台和浏览器扩展中会报告模型实例(通过toString()报告类似<(subclass of DS.Model):ember815:1234>的内容。如何显示实际的模型名称?< / p>

1 个答案:

答案 0 :(得分:2)

解析器知道可以扩展命名,以便在解析时将属性附加到类。然后,可以在toString()上覆盖DS.Model方法。

在ext / resolve-model-names.coffee中

`import Resolver from 'ember/resolver'`

Resolver.reopen({
  resolve: function (fullName) {
    var parsedName = this.parseName(fullName);
    var resolved = this._super(fullName);
    if (resolved && parsedName.type === 'model') {
      resolved.typeKey = parsedName.name.camelize();
    }
    return resolved;
});

DS.Model.reopen({
  toString: function() {
    "(DS.Model) " + this.constructor.typeKey + " #" + this.get('id');
  }
});

在app.js

import Resolver from 'ember/resolver';
import './ext/resolve-model-names';

var App = Ember.Application.extend({
  // ...
  Resolver: Resolver
})

现在您将看到(DS.Model)Post#1234

实际上我的代码组织方式有点不同,希望这很清楚。