我有一个选择标记,如下所示:
<select ng-change="doSomething()" ng-model="myModel"> </select>
我对它使用了jQueryUI控件(combobox),从jQuery触发的事件"change“不会触发doSomething()。
你知道如何从外部角度触发ng-change吗?
发布于 2015-04-11 00:26:12
问题不是如何运行一些代码,而是如何触发更改事件。我找到了一种角度友好的方式来做这件事。我有一个jQuery UI滑块,用于更改另一个输入的值,该输入上有ng-change。秘诀在于,一旦将其转换为angular.element,您现在就可以访问名为triggerHandler的方法。在我看来,使用它并不被认为是一种坏做法:
angular.element(document.getElementById('test')).triggerHandler('change');
tymeJV的回答是在没有使用jQuery的情况下直接使用angular.element("#test")
,但我得到了一个控制台错误和中断的功能。这个版本不需要任何依赖就可以工作。
发布于 2014-06-20 23:20:09
呃--这是一种可怕的做法--但是你可以使用angular.element
并从驻留在目标控制器中的一个元素中获取scope
。
示例:
<div ng-controller="myApp">
<span id="test"></span>
</div>
Javascript:
var scope = angular.element("#test").scope();
scope.doSomething();
您的scope
变量现在可以访问myApp
控制器上定义的所有方法。
https://stackoverflow.com/questions/24330467
复制相似问题