Ember.js: ember 2.10 segmen dinamis rute yang tidak ditentukan tidak lagi berfungsi.

Dibuat pada 30 Nov 2016  ·  22Komentar  ·  Sumber: emberjs/ember.js

Ini lebih terlihat seperti fitur yang tidak didukung daripada bug tapi saya pikir saya akan mencatatnya.

Saat meningkatkan dari 2.9.1 ke 2.10 saya mengalami pengecualian berikut.

"Assertion Failed: You attempted to define a `{{link-to "timecards"}}` but did not pass the parameters required for generating its dynamic segments. You must provide param `login` to `generate`."
#app/router.js
this.route('timecards', {path: '/timecards/:login'}, function() {
  this.route('index', { path: '/' });
  this.route('timecard-day', {path: '/day/:date'});
  this.route('pay-period', {path: '/pay-period/:date'});
});

#app/routes/timecards.js #model hook
model(params) {    
  let login = params.login || this.get('currentUser.login');
  return this.store.peekAll('user').findBy('login', login);
}

Sangat berguna untuk menggunakan segmen dinamis opsional pada rute induk untuk memuat model pengguna default daripada harus memuatnya untuk setiap rute anak individual.

Ember 2.10 Inactive Needs Bug Verification Needs Submitter Response

Komentar yang paling membantu

Ini memblokir 2.10 dan 2.11 bagi kami. Senang mencoba memperbaiki jika seseorang dapat mengonfirmasi bahwa ini adalah regresi.

Semua 22 komentar

Saya cukup yakin Anda masih bisa melakukan ini dengan melewatkan undefined dan menerapkan hook serialize kustom.

Pesan kesalahan yang ditambahkan di sini adalah kemenangan yang cukup besar bagi orang-orang pada umumnya, dan saya lebih suka menyimpannya jika memungkinkan ...

@rwjblue meneruskan undefined ke link-to helper memberikan 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.

Saya juga memiliki masalah dengan:

{{link-to 'projects.project.tasks' project}}
  this.route('projects', function() {
    this.route('project', { path: ':id' }, function() {
      this.route('tasks');
    });
  });

Kesalahan Ember memberi tahu tentang id tidak ditentukan.
Perbaikan cepat untuk itu adalah mengubah :id di router menjadi :project_id

Saya pikir ini bukan perbaikan nyata dan pantas untuk dikualifikasikan sebagai bug. Jika tidak, tidak ada informasi tentang mengubah perilaku router.

@Exelord yang tidak terkait dengan bug yang dijelaskan semula, dan bukan bug. Kami secara khusus mendokumentasikan bahwa implementasi default membutuhkan :modelname_id untuk bekerja di luar kotak. Jika Anda menggunakan bidang khusus, Anda harus menerapkan ulang serialisasi / deserialisasi di rute masing-masing.

@Exelord (sebagai sidenote, tidak terkait langsung dengan masalah ini) ... Saya tidak yakin apakah ini didokumentasikan atau tidak, tetapi saya rasa Anda tidak dapat menggunakan pengenal yang sama untuk segmen dinamis lebih dari sekali di router . Jadi saya akan menghindari penggunaan ": id", dan juga menghindari penggunaan ": modelname_id" lebih dari sekali. (mis. jika diperlukan lagi mungkin menggunakan ": newmodelname_id", hanya sesuatu yang berbeda)

@rwjblue @ sly7-7 sehingga tampaknya tidak ada solusi yang tepat untuk masalah ini, benar?

@arenoir dapatkah Anda membuat reproduksi ember-twiddle dari masalah ini, kedengarannya seperti bug. Memiliki repo masalah akan membantu mendiagnosis masalah dan juga memberikan verifikasi bug.

@lock @pixel
Anda punya hak, teman. Terima kasih atas bantuan dan penjelasannya. Tapi memang itu berhasil sebelum 2.10.
Saya kira sekarang, itu adalah bug atau perilaku yang tidak terduga.

@pixelhandler oke di sini adalah twiddle .

: point_up: sepertinya reproduksi yang bagus. label itu bisa dihilangkan

Saya bingung apakah ini akan dianggap sebagai regresi atau harus diperbaiki dalam aplikasi.

Ini memblokir 2.10 dan 2.11 bagi kami. Senang mencoba memperbaiki jika seseorang dapat mengonfirmasi bahwa ini adalah regresi.

Masalah yang sama bagi saya seperti yang dijelaskan oleh @arenoir

Mengalami masalah yang sama hari ini 👎

@jakeleboeuf Saya mengalami masalah yang sama dan memutakhirkannya ke 2.13.1 memperbaikinya. Versi mana yang kamu punya

[EDIT]
Ini jam 2 pagi dan otak saya hampir pergi ke luar angkasa. Saya baru menyadari bahwa saya salah mengujinya. Ini masih berlanjut ...

Jika ada yang mengalami masalah ini, bisa jadi ini:

import Controller from 'ember';
import { alias } from 'ember-computed';

export default Controller.extend({
  deployments: alias('model')
});

Perhatikan bahwa saya salah mengimpor Contoller . Seharusnya import Controller from 'ember-controller'; . Ini jika Anda menggunakan ember-cli-shims, yang digunakan oleh proyek saya saat ini. Saya tersesat dalam hal ini selama sekitar satu jam sebelum saya menyerah, kembali dan melihat dengan jelas apa yang saya lakukan salah.

Tembakan panjang di sini, tetapi saya mengalami masalah ini ketika secara tidak sengaja menimpa asli Object dengan kelas Objek Ember melalui sesuatu seperti:

const { Object } = Ember;

Hal ini menyebabkan model hook saya (di mana Object.create dipanggil) gagal dan, untuk beberapa alasan, pengecualian yang dilemparkan dari segmen dinamis yang disebutkan tidak ada. Saya rasa ini mirip dengan apa yang @alvincrespo sebutkan dalam komentarnya di atas.

@lrdiv ya, saya pikir ini terjadi dengan saya.

Assertion Failed: You attempted to define a `{{link-to "control.templates.show"}}` but did not pass the parameters required for generating its dynamic segments. _ember.default.extend is not a function

@brunowego Ya itu kesalahan yang sama yang saya dapatkan. Dalam kasus kami, tampaknya ini lebih merupakan pengecualian yang menyesatkan daripada bug yang sebenarnya.

@lrdiv ini juga terjadi pada saya, tangkapan bagus! : v:

Apa yang saya lakukan adalah menghancurkan Ember dan secara tepat menimpa yang asli Object dengan yang sebelumnya Ember.Object . Jadi saya mengubah nama menjadi sesuatu seperti const EmberObject = Ember.Object dalam deklarasi dan penggunaan dan semuanya berjalan dengan benar. Saya juga tidak akan menyebutnya bug-bug, jadi saya setuju dengan Anda hampir semua yang Anda tulis di atas: stuck_out_tongue_winking_eye:

@Exelord @acorncom @alvincrespo @arenoir @asvny @bjornharrtell @brunowego @carlbennettnz @dustinfarris @jakeleboeuf @locks @lrdiv @nightsh @rwjblue @ sly7-7 @tarikozket apakah ini masih menjadi masalah, mungkin kita harus menutup atau membuat reproduksi baru ini, bagaimana menurutmu?

Menutup untuk saat ini, silakan buka kembali jika Anda dapat mereproduksi di rilis Ember saat ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat