Setelah memutakhirkan ke 2.15.0 beberapa pengujian kami mulai gagal karena bagian dalam {{#link-to}}
berhenti bekerja.
Ini adalah {{link-to}}
dimaksud . Saat rendering tidak ada kesalahan langsung tetapi href yang dihasilkan hanya #
dan atribut data-test-user-id
tidak dikeluarkan saat pengujian. Mengklik link menghasilkan peringatan ini:
This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid.
Segala sesuatu yang lain di dalam parsial masih baik-baik saja, hanya tautan ke yang gagal.
Mengubah parsial menjadi komponen memperbaiki masalah.
Saya telah menemukan masalah serupa di 2.15, tampaknya sebagian yang dirender di dalam blok yang dihasilkan dari komponen tidak menerima parameter yang dihasilkan dari komponen itu.
Contoh:
// -name.hbs
<p>{{name}}</p>
component.js
export default Component.extend({
name: "Ivan"
})
template.hbs
{{yield name}}
some-route-template.hbs
{{#my-component as |name|}}
{{partial "name"}}
{{/my-component}}
Dalam contoh ini, variabel {{name}}
dalam parsial tidak terdefinisi.
Hal yang sama terjadi dengan iterasi #each. Nilai dari #each tidak diteruskan ke konteks parsial.
{{#each visibleContent as |record index|}}
{{partial rowTemplate}}
{{/each}}
Baik catatan dan indeks tidak ditentukan secara parsial.
Yang cukup menarik, saya masih bisa mereferensikan properti variabel "hilang" dengan namanya, misalnya dalam rowTemplate
saya bisa melakukan record.id
tetapi tidak (get record "id")
. Tidak yakin apakah itu ada bantuan untuk men-debug masalah.
Apakah perilaku ini warisan, atau adakah pendekatan alternatif yang harus dipertimbangkan? Kami telah mencoba menggunakan komponen daripada parsial, tetapi untuk aplikasi kami yang besar masih banyak contoh di mana bug ini merusak banyak hal. Pada titik ini, kami diblokir dari peningkatan, dan saya terkejut ini tidak memengaruhi lebih banyak orang.
Tidak, ini bukan perilaku lama, tetapi cukup jarang terjadi. Anda harus _totally_ bermigrasi untuk menggunakan komponen kapan pun Anda bisa (ini jauh lebih sederhana untuk dipikirkan), tetapi kita harus benar-benar memperbaiki secepatnya.
@rwjblue ada petunjuk di mana saya harus mulai mencari untuk membantu memperbaikinya?
Saya mengirimkan https://github.com/emberjs/ember.js/issues/15674 dengan beberapa kasus pengujian yang gagal. Tampaknya masalahnya tidak sesederhana mengakses nilai properti terikat dalam sebagian (setidaknya tampaknya tidak demikian dengan pengujian saya). Saya yakin masalah yang mendasarinya berkaitan dengan cara kami menghasilkan referensi yang digunakan oleh hal-hal seperti if
, unless
, with
, dan get
.
Sayangnya, saya tidak punya senjata untuk menunjuk. :(
kami juga tidak dapat meningkatkan karena bug ini. mirip dengan @ thec0keman kami memiliki aplikasi ember yang cukup besar yang pada awalnya mulai menggunakan EAK, jadi masih ada beberapa fungsionalitas lama yang belum kami bawa ke ember modern
kami tidak memiliki banyak parsial yang tersisa, tetapi cukup bahwa ini adalah pemblokir bagi kami sampai kami memiliki waktu untuk memigrasi / menguji parsial yang tersisa ke komponen
Yang ini benar-benar harus mendapatkan prioritas yang lebih tinggi, sebagian rusak sejak 2.15 dan mencegah orang meningkatkan dari 2.14 ke 2.16.
+1
Saya akan melihatnya minggu depan setelah EmberFest.
Saya telah memperpanjang bermalas dari @Serabe dan menemukan, bahwa jika properti dengan nama yang sama akan didefinisikan dalam controller, parsial mendapat nilai yang tepat. Tetapi jika nilai dalam array adalah undefined
parsial masih berpikir bahwa ia memiliki nilai yang benar.
Ini bug di Glimmer. Lihat di masalah yang direferensikan.
Versi kilau baru dengan perbaikan dirilis. Setelah memperbarui versi sekilas, bug ini harus diperbaiki. Saya telah membuka permintaan tarik untuk memperbarui versi glimmer.
FYI - Peningkatan ke Glimmer 0.29 adalah upaya yang besar (dan tidak mungkin terjadi sebelum Ember 3.0.0), @chadhietala melakukan backport perbaikan ke cabang 0.25. Kita perlu merilis itu sebagai versi tambalan dan memperbarui ke versi itu sebagai gantinya. Saya akan mencoba menyelesaikan rilis ini hari ini ...
@rwjblue LMK jika ada sesuatu yang dapat saya bantu dengan rilis yang menyertakan cabang 0,25 yang ditambal (karena saya sedang mengupgrade Intercom saat ini). Sejauh yang saya tahu, itu belum mencapai kenari bara
Masalah yang sama juga terjadi jika menggunakan with helper:
{{#with someProperty as |youNameIt|}}
{{partial somePartial}}
{{/with}}
Mungkin tambalan akan memperbaikinya juga, tetapi untuk memastikan saya menyebutkannya di sini!
Hai. Apakah ada perbaikan yang dirilis untuk masalah ini? Sejauh yang saya tahu, sebagian besar pembantu agak terpengaruh ketika digunakan dalam partial
. Apakah ada solusinya?
Ember 2.16.1 telah dirilis yang seharusnya memperbaiki masalah sebagian. Beri tahu saya jika Anda masih mengalami masalah
Sementara masalah ini telah diperbaiki, FYI saya baru saja menemukan masalah lain dengan parsial:
https://github.com/emberjs/ember.js/pull/15797
Saya akan bekerja untuk memperbaikinya nanti hari ini
Apakah kalian benar-benar yakin ini telah diselesaikan untuk 2.15? Pemutaran ulang dari
Kebetulan, saya perhatikan bahwa jika Anda memodifikasi parsial untuk menulis name
, itu benar-benar mencetak nilai yang benar ...
Bukan itu. Ember 2.15 bukan LTS, jadi menurut saya perbaikan tidak akan terjadi.
Konfirmasi.
Oh oke. Saya pikir perbaikan yang di-backport ke secercah 0,25 akan berarti ini berfungsi pada Ember 2,15 juga. Kira kita akan melompat langsung ke 2.16 lalu. Terima kasih!!
Komentar yang paling membantu
Reproduksi di 2.15 . Twiddle yang sama bekerja di 2.14 .