使用ember-data和ember-cli时,控制台和浏览器扩展中会报告模型实例(通过toString()
报告类似<(subclass of DS.Model):ember815:1234>
的内容。如何显示实际的模型名称?< / p>
答案 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
实际上我的代码组织方式有点不同,希望这很清楚。