我创建了一个类似于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
答案 0 :(得分:0)
所以我终于明白了。您必须使用以下方式设置所选选项:
element.selectedIndex = 0 // or the index that is selected
这将设置所选选项,然后您可以使用
触发更改事件$element.trigger("change");
SMH !!