我有一个select标签如下:
<select ng-change="doSomething()" ng-model="myModel"> </select>
Run Code Online (Sandbox Code Playgroud)
我正在使用jQueryUI控件(组合框),从jQuery触发的事件"更改"不会触发doSomething().
你知道如何从外角度触发ng-change吗?
cla*_*key 58
问题不是如何运行某些代码,而是如何触发更改事件.我找到了一种角度友好的方式来做到这一点.我有一个jQuery UI滑块,可以更改另一个输入的值,该输入上有ng-change.秘诀是,一旦你将它变成一个angular.element,你现在可以访问一个名为triggerHandler的方法.从我所看到的,使用它不会被认为是不好的做法:
angular.element(document.getElementById('test')).triggerHandler('change');
Run Code Online (Sandbox Code Playgroud)
tymeJV的答案angular.element("#test")
直接没有使用jQuery,但我得到了一个控制台错误和破坏功能.此版本无任何依赖性.
呃 - 这是一种可怕的做法 - 但你可以使用angular.element
并scope
从目标控制器中的元素中获取.
例:
<div ng-controller="myApp">
<span id="test"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var scope = angular.element("#test").scope();
scope.doSomething();
Run Code Online (Sandbox Code Playgroud)
您的scope
变量现在可以访问myApp
控制器上定义的所有方法.
归档时间: |
|
查看次数: |
21362 次 |
最近记录: |