2015-09-24 3 views
3

проекта:преобразования Ember-данных не прилагая с Ember-кли установки

  • Эмбер: 2.0.0
  • Ember-данные: 2.0.0
  • Ember-кли: 1.13.8

Я создал трансформируют: прообразы/isodate.js

import DS from 'ember-data'; 

export default DS.Transform.extend({ 

    deserialize: function(serialized) { 
     serialized = window.moment(serialized).toDate(); 
     if(serialized.toString() === "Invalid Date"){serialized = null} 
     return serialized; 
    }, 

    serialize: function(deserialized) { 
     deserialized = window.moment(deserialized).toISOString(); 
     return deserialized; 
    } 
}); 

и использовали его так:

import Ember from 'ember'; 
import DS from 'ember-data'; 

export default DS.Model.extend({ 
    Forename: DS.attr('string'), 
    Surname: DS.attr('string'), 
    Gender: DS.attr('string'), 
    DOB: DS.attr('isodate'), 
}); 

Но трансформация не применяется.

У меня нет сообщений об ошибках, а точки останова в преобразовании не запускаются. Я проверил это с новым преобразованием под названием foo, и я получаю то же самое поведение, преобразование не вызывается.

Что-то изменилось в ember 2.0, которое не было обновлено в документах, что приведет к тому, что выше не работает?

+0

к сожалению, похоже, не Трансформации работать вообще. Я создал тестовое преобразование, которое просто добавило «foo» в строку, и ничего не делало. –

+0

функции преобразования не запускаются? check transform имя файла – artych

+0

Я не уверен, что понимаю. Вы имеете в виду проверку того, что имя файла соответствует типу данных, переданному моему атрибуту данных? Если это так, как я уже сказал, я создал тестовое преобразование с совершенно другим именем файла («foo.js»), и он не получил вызов. –

ответ

0

Трансформация все еще работает с Эмбер-Cli 2.0+, вот один я использую сейчас в моем приложении, похожи на ваши, где я меняю формат дату:

Преобразования - app/transforms/utc.js:

import DS from "ember-data"; 
import moment from 'moment'; 

export default DS.Transform.extend({ 
    deserialize: function (value) { 
     return moment.utc(value); 
    } 
}); 

И моя модель - app/models/day.js:

import DS from 'ember-data'; 
import Ember from 'ember'; 
import moment from 'moment'; 

export default DS.Model.extend({ 
    year: DS.attr('number'), 
    date: DS.attr('utc'), 
    createdAt: DS.attr('date'), 
    dateSlug: Ember.computed('date', function() { 
     return moment(this.get('date')).format('MM-DD'); 
    }) 
}); 
Смежные вопросы