У меня есть простой класс модели, что я хранить некоторое глобальное состояние сПочему мой статус reopenClass не перезагружается, когда я делаю App.reset?
App.Person = Ember.Object.extend({
firstName: '',
lastName: ''
});
App.Person.reopenClass({
people: [],
add: function(hash) {
var person = App.Person.create(hash);
this.people.pushObject(person);
},
remove: function(person) {
this.people.removeObject(person);
},
find: function() {
var self = this;
$.getJSON('/api/people', function(response) {
response.forEach(function(hash) {
var person = App.Person.create(hash);
Ember.run(self.people, self.people.pushObject, person);
});
}, this);
return this.people;
}
});
Когда я призываю App.reset() с помощью RC6 и уголек-тестирования я заметил то, что государство в глобальных людей массив скопиться вокруг между тестами. Я вижу журнал, который показывает, что teardown вызывается между тестами, он просто не очищает число людей. Как я могу сбросить это при прерывании QUnit?
module('integration tests', {
setup: function() {
Ember.testing = true;
this.server = sinon.fakeServer.create();
this.server.autoRespond = true;
Ember.run(App, App.advanceReadiness);
},
teardown: function() {
this.server.restore();
App.reset(); //won't kill that global state ...
}
});
Update
Если вы хотите, чтобы дразнить «/» маршрут в RC6 ошибка, будет препятствовать вашей модели крюк от снова стрелять после того, как вы дразнить XHR (я надеюсь увидеть это зафиксировано в RC7 +)
https://github.com/emberjs/ember.js/issues/2997
просто быстрая записка, вызвав супер по какой-то причине, но она работала независимо! –
Определение App.reset выглядит как обычный метод. '_super' должен работать с этим. Но это делает вещи на runloop, который отложен. Следовательно, это работает в конечном итоге. Если возможно, вы можете выполнить пользовательский сброс до и затем вызвать _super. –
Просто быстрое обновление для тех, кто может следовать - это не работает с Ember 1.3.2 (кажется, что вызов супер внутри этого больше не поддерживается) –