Angular ng更改不在firefox和safari中触发

时间:2014-06-26 03:00:52

标签: javascript jquery angularjs firefox safari

我创建了一个类似于Foundations自定义下拉列表的自定义指令。基本上我创建一个div并使用选项填充ul。与div的交互与后台中的实际选择进行交互。 Eveyrthing在Chrome中运行良好。问题是当我选择一个选项时,我使用jQuery来触发select元素的change事件。在chrome中,这反过来会触发附加到它的ng-change。出于某种原因,这不会在Firefox和Safari中触发。我认为它应该与Chrome一样。我做了一些进一步的测试,发现更改事件已经触发,但由于某种原因,没有触发Angular触发它的ngChange方法。我不知所措,需要完成这项工作A.S.A.P.任何和所有的帮助表示赞赏。

[更新]

这是一个简单的代码示例

<select ng-model="model" ng-change="changeFunc()"></select>

我安装了jQuery,所以该指令给了jQuery包装的$元素,所以我只需要调用

$element.trigger("change")

在Chrome中,这又会触发控制器上的changeFunc

1 个答案:

答案 0 :(得分:0)

所以我终于明白了。您必须使用以下方式设置所选选项:

element.selectedIndex = 0 // or the index that is selected

这将设置所选选项,然后您可以使用

触发更改事件
$element.trigger("change");

SMH !!