Ember.js: `{{действие (mut propertyName)" newPropertyValue "` пытается обновить неправильное свойство

Созданный на 11 мар. 2016  ·  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 Bin, чтобы продемонстрировать это: http://emberjs.jsbin.com/qavaki/1

Все 4 Комментарий

Я не думаю, что синтаксис действий в пространстве элементов позволяет это, возможно, вам придется использовать закрывающие действия для этого поведения:

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

Что ж, в таком случае документация должна это отразить.

Извините за то, что был слишком резок раньше, я говорил о реализации (а не о том, что мы на самом деле хотим поддерживать). Я думаю, что специальный корпус (mut helper, как это сделано в других частях системы, кажется совершенно нормальным.

Нам действительно нужно решить немного более комплексно, что мы подразумеваем как судьбу элемента космического актуона ...

В дополнение к решению, предложенному @rwjblue , есть еще один способ решить эту проблему:

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

Я отредактировал ваш JS Bin, чтобы продемонстрировать это: http://emberjs.jsbin.com/qavaki/1

Была ли эта страница полезной?
0 / 5 - 0 рейтинги