首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从jquery触发ng-change?

如何从jquery触发ng-change?
EN

Stack Overflow用户
提问于 2014-06-20 23:14:05
回答 2查看 25.5K关注 0票数 26

我有一个选择标记,如下所示:

代码语言:javascript
复制
<select ng-change="doSomething()" ng-model="myModel"> </select>

我对它使用了jQueryUI控件(combobox),从jQuery触发的事件"change“不会触发doSomething()。

你知道如何从外部角度触发ng-change吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-11 00:26:12

问题不是如何运行一些代码,而是如何触发更改事件。我找到了一种角度友好的方式来做这件事。我有一个jQuery UI滑块,用于更改另一个输入的值,该输入上有ng-change。秘诀在于,一旦将其转换为angular.element,您现在就可以访问名为triggerHandler的方法。在我看来,使用它并不被认为是一种坏做法:

代码语言:javascript
复制
angular.element(document.getElementById('test')).triggerHandler('change');

tymeJV的回答是在没有使用jQuery的情况下直接使用angular.element("#test"),但我得到了一个控制台错误和中断的功能。这个版本不需要任何依赖就可以工作。

票数 64
EN

Stack Overflow用户

发布于 2014-06-20 23:20:09

呃--这是一种可怕的做法--但是你可以使用angular.element并从驻留在目标控制器中的一个元素中获取scope

示例:

代码语言:javascript
复制
<div ng-controller="myApp">
    <span id="test"></span>
</div>

Javascript:

代码语言:javascript
复制
var scope = angular.element("#test").scope();
scope.doSomething();

您的scope变量现在可以访问myApp控制器上定义的所有方法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24330467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档