Bir diziden bir öğe seçmek için çok yararlı olan bir {{findby}}
yardımcı oluşturdum, ancak bir sorunla karşılaştım. Yardımcı, bir promiseArray olan bir dizide findBy()
'u aramaktan hoşlanmaz.EmberJS: Bir sözden veri döndürebilen bir yardımcıya nasıl yardımcı olunur
Yani yardımcı bunun için düzenleme: tabii
export function findby([array, key, value]) {
let isPromiseArray = Ember.typeOf(array.then) === 'function';
if (isPromiseArray) {
array.then((arr) => {
return arr.findBy(key, value) || null;
});
} else {
return array.findBy(key, value) || null;
}
}
export default Ember.Helper.helper(findby);
fikri varlık, bir geçti dizisi PromiseArray olmak olur, findBy()
çağırmak denemeden önce then()
kullanın.
Sorun şu ki, bu durumda bir şey döndüremiyor gibi görünmüyor .. then()
'un içinden dönmek yardımcı işlevini gerçekten kapatıyor gibi görünmüyor, bu nedenle yardımcı tanımsız olarak geri dönüyor.
i yapmaya çalışırsanız:
return array.then((arr) => {
return arr.findBy(key, value) || null;
});
sonra sadece söz kendisi yardımcı döndü alır.
https://ember-twiddle.com/c82fb0e11641703f118e867b45403654?numColumns=2&openFiles=controllers.application.js%2Chelpers.findby.js
soru yardımcıları için genel bir gibi görünüyor: bir yardımcı bir vaadi gelen/o() işlevini verilerini döndürmek için bir yol var mı Burada
Ben çalıştılar şeyin bir Twiddle nedir? Yapmak istediğim şey bir yardımcıyla mümkün mü acaba?
[ember-promise-helpers] 'a göz atmalısınız (https://github.com/fivetanley/ember-promise-helpers) – nem035
@nem ok Teşekkürler, yararlı olabilir gibi görünüyor! – Grapho