2014-08-21 2 views
0

При использовании уголек-данных и уголек-консоли, экземпляры модели представлены в консоли и расширение браузера (через toString() с чем-то вроде <(subclass of DS.Model):ember815:1234>. Как может иметь реальное имя модели будет показано?Как показать фактические имена моделей при использовании ember-cli?

ответ

2

Разрешитель знает имен может быть расширен, чтобы прикрепить свойства классов, как они будут решены. Тогда метод toString() может быть переопределена DS.Model.

в внутр/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

На самом деле мой код организован немного иначе, надеюсь, это достаточно ясно.

+0

@rwjblue сообщает, что установка 'EmberENV.MODEL_FACTORY_INJECTIONS' (закомментированная в app.js от ember-cli v0.0.37) исправит это автоматически. – aceofspades

+0

Каков наилучший способ сделать это сейчас? – RyanJM

+0

Обновлено до того, что я использую для v1.8 – aceofspades

Смежные вопросы