Ember.js: `{{action (mut propertyName) "newPropertyValue"` mencoba memperbarui properti yang salah

Dibuat pada 11 Mar 2016  ·  4Komentar  ·  Sumber: emberjs/ember.js

Seperti yang didokumentasikan dalam http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_get , seharusnya dimungkinkan untuk menggunakan mut helper dalam action helper untuk memperbarui sebuah properti sebagai berikut:

<!-- factName is set to "height" and should be changed to "weight" -->
<button {{action (mut factName) "weight"}}>Show weight</button>

Namun, alih-alih memperbarui factName , Ember mencoba menjalankan tindakan yang dinamai dengan nilai factName :

error Script error. (line 0)
ember.debug.js:44562 Uncaught Error: Nothing handled the action 'height'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.

Saya tidak tahu apakah ini bug atau apakah helper mut tidak pernah dimaksudkan untuk bekerja seperti itu.

Kasus uji: http://emberjs.jsbin.com/radogusojex

Komentar yang paling membantu

Selain solusi yang dikemukakan oleh @rwjblue , cara lain untuk menyelesaikannya adalah:

<button {{action (action mut factName) "weight")}}>Show weight</button>

Saya telah mengedit JS Bin Anda untuk menunjukkannya: http://emberjs.jsbin.com/qavaki/1

Semua 4 komentar

Saya tidak berpikir sintaks tindakan ruang elemen memungkinkan ini, Anda mungkin harus menggunakan tindakan penutupan untuk perilaku ini:

<button onclick={{action (mut factName) "weight"}}>Show weight</button>

Nah, dalam hal ini dokumentasi harus mencerminkan hal itu.

Maaf karena terlalu mendadak sebelumnya, saya berbicara tentang implementasi (bukan apa yang sebenarnya ingin kami dukung). Saya pikir casing khusus (pembantu mut seperti yang dilakukan di tempat lain dalam sistem tampaknya baik-baik saja.

Kita memang perlu memutuskan secara lebih menyeluruh apa yang kita maksudkan sebagai nasib aktuator ruang elemen...

Selain solusi yang dikemukakan oleh @rwjblue , cara lain untuk menyelesaikannya adalah:

<button {{action (action mut factName) "weight")}}>Show weight</button>

Saya telah mengedit JS Bin Anda untuk menunjukkannya: http://emberjs.jsbin.com/qavaki/1

Apakah halaman ini membantu?
0 / 5 - 0 peringkat