كما هو موثق في 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
لا أعتقد أن صيغة إجراء مساحة العنصر تسمح بذلك ، قد تضطر إلى استخدام إجراءات الإغلاق لهذا السلوك:
<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
التعليق الأكثر فائدة
بالإضافة إلى الحل الذي طرحه rwjblue ، هناك طريقة أخرى لحلها وهي:
لقد قمت بتحرير حاوية JS الخاصة بك لإثبات ذلك: http://emberjs.jsbin.com/qavaki/1