Saya tidak yakin apakah ini perilaku yang disengaja, tetapi izinkan saya menjelaskan. Jika saya menggunakan transisiTo pada rute yang memiliki segmen dinamis, metode model pada rute tujuan tidak pernah dipanggil. Pada dasarnya saya hanya melewati params dengan id dan saya masih ingin memuat model yang tepat.
Jika saya menyegarkan halaman dengan URL yang benar meskipun model dimuat dengan baik. Saya mengumpulkan codepen untuk didemonstrasikan.
http://codepen.io/anon/pen/LsfhB
Versi saat ini akan keluar ke konsol "Saya di sini." Jika Anda melihat IndexRoute ada transisi yang dikomentari. Jika itu diaktifkan, "Saya di sini" tidak akan pernah terpicu.
Apakah ini diharapkan? Jika demikian, di mana saya harus memuat model saya untuk rute konfirmasi?
Jika Anda mengubah transisi menjadi this.transitionTo('confirm', 1);
maka itu akan berfungsi seperti yang Anda harapkan.
IIRC jika Anda meneruskan primitif (string, angka) ke transisi alih-alih model lengkap maka itu akan menghitung itu adalah ID dan menggunakannya untuk membangun params untuk panggilan ke model
, tetapi jika Anda melewati sesuatu yang rumit (dalam kasus ini sebagai objek) maka ia memperlakukannya karena Anda telah melewati model dan karenanya tidak memanggil kait model.
Dokumen API mungkin dapat dilakukan dengan contoh melewati ID alih-alih model lengkap: http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
Semoga masuk akal
Masuk akal sekarang. Pertanyaan awal saya setelah komentar Anda adalah bagaimana Anda memasukkan banyak parameter? Tapi sepertinya Anda hanya meneruskannya sebagai argumen terpisah.
this.transitionTo('confirm.url', 1, 'the-slug-I-want');
Itu bekerja dengan baik untuk saya.
Pertanyaan di sini, jika Anda memiliki rute dengan sub-rute semua dengan segmen dinamis:
misalnya
this.route('organization', { path: 'organizations/:organization_id' }, function() {
this.route('project', { path: 'projects/:project_id' }, function() {
this.route('screen', { path: 'screens/:screen_id' });
});
dan saya berada di rute lain misalnya rute auth. Ketika saya pergi ke this.transitionTo('organization.project.screen',
{organization_id: 'grege23-234-4c3e-96fe-234423' },
{project_id: '234234-23423-4b99-a492-234' },
{screen_id: '34534-48f4-471d-ad17-3'45 });
Saya tidak melihat apa-apa, karena model tidak dimuat.
Bagaimana Anda bisa pergi untuk yang satu ini?
Komentar yang paling membantu
Jika Anda mengubah transisi menjadi
this.transitionTo('confirm', 1);
maka itu akan berfungsi seperti yang Anda harapkan.IIRC jika Anda meneruskan primitif (string, angka) ke transisi alih-alih model lengkap maka itu akan menghitung itu adalah ID dan menggunakannya untuk membangun params untuk panggilan ke
model
, tetapi jika Anda melewati sesuatu yang rumit (dalam kasus ini sebagai objek) maka ia memperlakukannya karena Anda telah melewati model dan karenanya tidak memanggil kait model.Dokumen API mungkin dapat dilakukan dengan contoh melewati ID alih-alih model lengkap: http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo
Semoga masuk akal