Angular $ digest循环使Chrome 50打开<select>闪烁

Ivo*_*hou 8 google-chrome angularjs

这个问题显示了一个问题,即当一个<select>选项列表绑定到某个值时$scope,该$scope摘要事件将导致打开的<select>闪烁.

但是,我发现闪烁效果只发生在我身上Chrome 50 on OS X,即如果在我Firefox in OS X或我的打开列表时发生$摘要,我将看不到闪烁Chrome in Windows.

这会是Chrome的错误吗?如何防止这种影响?因为如果没有更改选项的元素,人们不希望看到<select>元素闪烁.

我正在研究一个可以用最少的代码在线看到效果的例子.我当前项目的一个例子如下.

<select class="form-control" ng-model="application.choiceOfTeams[0]" ng-options="team.name for team in teams">
    <option value="">-- select team --</option>
</select>
<select class="form-control" ng-model="application.choiceOfJobs[0]"
            ng-show="application.choiceOfTeams[0].jobs"
            ng-options="job.name for job in application.choiceOfTeams[0].jobs">
    <option value="">-- select position from {$ application.choiceOfTeams[0].name $} --</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Phi*_*rdy 2

这听起来与您链接的帖子有同样的问题。

看来是这个错误:

https://bugs.chromium.org/p/chromium/issues/detail?id=613885

正如评论中所建议的,在选择上将转换设置为 none 可以解决该问题,在我的情况下(使用引导程序)使用以下命令:

select.form-control { transition: none; }
Run Code Online (Sandbox Code Playgroud)

要在没有引导程序的情况下使用,或者不使用 .form-control 类,只需删除 .form-control 选择器并确保没有其他内容覆盖选择元​​素上的过渡属性:

select { transition: none; }
Run Code Online (Sandbox Code Playgroud)