Подтвердить что ты не робот

Остановить распространение клика от действия Ember?

У меня есть этот код, который при щелчке по значку редактирования редактирует действие, открывающее модальное, но в то же время клик распространяется на представление под ним (personView). Я хочу, чтобы действие выполнялось и прекращалось распространение.

Единственное решение, о котором я могу думать, - сделать значок-отредактировать его собственное представление и остановить распространение щелчка, вернув false в методе click. Есть ли другой способ сделать это, не делая другого представления?

HBS:

{{#view Blocks.PersonView}}
  <span class="inline pull-right icon-edit" {{action 'modalOpen' 'modifyPersonPopup' 'modifyPerson' this}}></span>
  <p class="inline pull-left person-name">{{firstNameDelayed}}</p>
{{/view}}
4b9b3361

Ответ 2

Попробуйте изменить действие:

modalOpen: function {
    //code of your action
    return false;    
}

Это сработало для меня в аналогичной ситуации

Ответ 3

Я смог перехватить клик, используя jQuery, но логика слишком противная. Эта логика также останавливает работу помощника действий. Я предпочел бы остаться с решением, которое использует представление ember, чтобы не распространять клик.

Отвратительное решение внутри personView:

Blocks.PersonView = Ember.View.extend({
  classNames: ['event-person-block', 'person', 'inline'],
  classNameBindings: ['personActive'],
  // Onclick toggles person selection.
  click: function () {
 this.get('controller.parentController').send('personClicked',this.get('controller.content.id'))
  }
didInsertElement: function() {
  this.$().find(".icon-edit").click(function(e) {
    e.stopPropagation()
  })
}

})

Более чистое решение, использующее представление, которое обертывает интервал редактирования значков:

Blocks.EditPersonIcon = Ember.View.extend({
    click: function () {
        return false
    }
})