【问题标题】:How to click button from ember.js controller如何从 ember.js 控制器单击按钮
【发布时间】:2017-08-06 16:15:05
【问题描述】:

当我通过以下方式找到一个 DOM 元素时:

$('md-autocomplete-wrap button')[0]

浏览器控制台实际上正确显示为 HTML 按钮,我想通过控制器操作单击此按钮。 尽管如此:

$('md-autocomplete-wrap button')[0].click();

因为什么都没有发生,所以不能解决问题。如何正确触发该按钮的click()功能?

【问题讨论】:

  • 您尝试单击的 DOM 元素是由 Ember 呈现的吗?如果是这样,我建议以不同的方式这样做......

标签: javascript jquery html ember.js ember-paper


【解决方案1】:

使用此代码:

http://emberjs.jsbin.com/mimuwale/1/edit

js

App = Ember.Application.create();

function getView($el){
  return Ember.View.views[$el.closest(".ember-view").attr("id")];
}

function newAlert(el){
  getView($(el)).get('controller').send('newAlert',el.id);
}

App.IndexView=Ember.View.extend();

App.IndexController=Ember.Controller.extend({
  actions:{
    newAlert:function(buttonId){alert('clicked button:'+buttonId);}
  }
});

hbs

<script type="text/x-handlebars" data-template-name="index">
  <button id='definition' onclick='newAlert(this)'>test</button>
</script>

【讨论】:

  • 我不想覆盖这个按钮的默认onClick方法,而是通过调用click()函数来实际使用它。
【解决方案2】:

使用jquerytrigger方法

$('md-autocomplete-wrap button')[0].trigger('click')

参考:
http://api.jquery.com/trigger/

【讨论】:

  • 我尝试了这种方法,但我的 DOM 没有任何变化。
猜你喜欢
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2016-08-01
  • 2014-03-26
相关资源
最近更新 更多