0
我對使用TWO模型的路線進行qunit測試,並使用Ember.RSVP.hash
來完成此操作。事情按預期工作,但只要我將filter
添加到Ember.RSVP.hash
就會停止以qunit方式檢索數據。在qunit之外,它仍然有效,所以我認爲這是filter
,Ember.RSVP.hash
和qunit
的問題。在Ember.RSVP.hash中使用過濾器無法在qunit測試中檢索數據
這裏是我的測試:
module('Ember.js Library', {
setup: function() {
Ember.run(App, App.advanceReadiness);
},
teardown: function() {
App.reset();
}
});
test('foo', function() {
visit('/books');
andThen(function() {
equal(currentRouteName(), 'books.index');
});
});
下面是不使用filter
工作路線:
App.BooksRoute = Ember.Route.extend({
model: function() {
var id = 1;
// note this does not filter "books" properly
return Ember.RSVP.hash({
books: this.store.find('books'),
library: this.store.find('library', id)
});
}
});
下面是一個使用filter
和不工作的版本:
App.BooksRoute = Ember.Route.extend({
model: function() {
var id = 1;
// note: filters "books" properly but doesn't work in qunit
return Ember.RSVP.hash({
books: this.store.filter('books', function(record) {
return record.get('libraryId') === id;
}),
library: this.store.find('library', id)
});
}
});
最終的結果是在工作版本中,books
如預期那樣存在。在第二個版本中,books
最終爲空。在這兩個版本中library
總是存在,所以我認爲filter
是問題所在。如何使用filter
並使用qunit工作?
我要去嘗試了這一點。但是當我在本地運行代碼時,我的代碼可以正常工作,而不是在qunit中。 – Dty 2014-12-08 03:27:11
本地商店是否可能通過對'this.store.find('books')'的不同調用來預加載? – tikotzky 2014-12-08 03:28:32
你說得對,它已經在應用程序路線中預裝了。不知道爲什麼這不起作用...猜是時候換另一個SO問題了。 – Dty 2014-12-08 03:53:02