Ember.js: يحاول `{{action (mut propertyName)" newPropertyValue "` تحديث الخاصية الخاطئة

تم إنشاؤها على ١١ مارس ٢٠١٦  ·  4تعليقات  ·  مصدر: emberjs/ember.js

كما هو موثق في http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_get ، يجب أن يكون من الممكن استخدام المساعد mut داخل المساعد action للتحديث خاصية على النحو التالي:

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

ومع ذلك ، بدلاً من تحديث factName ، يحاول Ember استدعاء إجراء مسمى على اسم القيمة الحالية 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.

لا أعرف ما إذا كان هذا خطأ أو إذا لم يكن المقصود من المساعد mut أن يعمل بهذه الطريقة مطلقًا.

حالة الاختبار: http://emberjs.jsbin.com/radogusojex

التعليق الأكثر فائدة

بالإضافة إلى الحل الذي طرحه rwjblue ، هناك طريقة أخرى لحلها وهي:

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

لقد قمت بتحرير حاوية JS الخاصة بك لإثبات ذلك: http://emberjs.jsbin.com/qavaki/1

ال 4 كومينتر

لا أعتقد أن صيغة إجراء مساحة العنصر تسمح بذلك ، قد تضطر إلى استخدام إجراءات الإغلاق لهذا السلوك:

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

حسنًا ، في هذه الحالة يجب أن تعكس الوثائق ذلك.

آسف لكوني مفاجئًا جدًا من قبل ، كنت أتحدث عن التنفيذ (وليس ما نريد دعمه بالفعل). أعتقد أن الغلاف الخاص (مساعد متعدد كما هو الحال في أي مكان آخر في النظام يبدو جيدًا تمامًا.

نحن بحاجة إلى أن نقرر بشكل كلي أكثر قليلاً ما نعتزمه كمصير عنصر مساحة العنصر ...

بالإضافة إلى الحل الذي طرحه rwjblue ، هناك طريقة أخرى لحلها وهي:

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

لقد قمت بتحرير حاوية JS الخاصة بك لإثبات ذلك: http://emberjs.jsbin.com/qavaki/1

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات