#javascript #ember.js
#javascript #ember.js
Вопрос:
У меня есть таблица, в которой я хочу, чтобы пользователи переходили к определенным элементам при нажатии на строку, но строка может содержать другие элементы (например, флажки), которые запускают действия, но не запускают навигацию (например, gmail).).
Моя структура такая:
{{#each player in controller}}
{{#link-to "player" player.uid tagName="tr"}}
<td>
{{input action="select" type="checkbox" checked=selected bubbles=false}}
</td>
<td>
{{player.name}}
</td>
...
{{/link-to}}
{{/each}}
Моя проблема в том, что презираю bubbles=false
(как указано в спецификации), link-to
срабатывает и переходит на другой маршрут. Есть идеи?
Ответ №1:
Это работает, когда вы присоединяете действие к элементу, помощник ввода не поддерживает action='foo'
таким образом. Он даже не попадает вообще.
http://emberjs.jsbin.com/lugatite/1/edit
Вам нужно будет установить свой собственный флажок или просто указать отмеченное значение в вашем контроллере
App.MyCheckBox = Ember.Checkbox.extend(Ember.TargetActionSupport, {
target: Ember.computed.alias('controller'),
action: 'save',
actionContext: Ember.computed.alias('context'),
click: function(el) {
this.triggerAction();
el.stopPropagation();
}
});
Комментарии:
1. Это работает для прикрепления действий, но ссылка на все еще срабатывает, см.: jsbin.com/lugatite/4/edit
2. упс, извините, я зациклился на том факте, что вы не смогли сделать это с помощью реализации по умолчанию, я обновил ответ, который должен сработать для вас.