Ember.js: [2.15.0] {{link-to}} di dalam sebagian berhenti bekerja

Dibuat pada 1 Sep 2017  ·  25Komentar  ·  Sumber: emberjs/ember.js

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.

Bug Ember 2.15

Komentar yang paling membantu

Reproduksi di 2.15 . Twiddle yang sama bekerja di 2.14 .

Semua 25 komentar

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.

Reproduksi di 2.15 . Twiddle yang sama bekerja di 2.14 .

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 ...

image

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!!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat