angular.js - 为什么加了 CSS3 的 transition 会导致 Angular 数据绑定失效?
给我你的怀抱
给我你的怀抱 2017-05-15 16:49:16
0
1
659

问题不太好描述,劳各位费心帮我看看是怎么回事。

  1. 一个列表页面(比如常见的用户列表),列表的每一项因为有box-shadow的设置,在鼠标悬浮的时候,box-shadow会变化,为了让这个效果更平滑,加了transition

  2. 这个列表有一个筛选输入框,输入一些关键字可以匹配列表中符合的项,其他的项会从 DOM 中移除掉,这是典型的 Angular 数据绑定过滤效果;

  3. 问题来了,只要transition在,数据绑定就会出现问题。具体表现为:假设列表有 10 项,过滤的关键字可以匹配到其中的一项,然而在输入关键字之后,匹配项固然会出现,不匹配项也会残留若干个(数目不确定,但每次都会有残留存在)。接着如果用鼠标浮动这些项,那么匹配的会继续存在,不匹配的才会消失;

  4. 若去掉transition则一切正常。

这个问题让我百思不得其解,问询 Google 大神也没找着相似的案例,只得求助熟悉 Angular 的各位帮我想想看这是什么道理?Angular 版本是1.2.13,谢谢!


补充,刚才我偶然发现一个细节:这些列表项实际上有两个transition外部容器有一个,内部的图片有一个,类似于下面的结构:

 

...

里边的transition是不会产生问题的,只有外部的transition才会(想想也应该如此,只是为了确认一下)。所以临时的解决方案就只能是牺牲外部的渐变效果了……然而我依然非常想知道,为什么transition会影响 Angular 的数据绑定?

给我你的怀抱
给我你的怀抱

répondre à tous (1)
巴扎黑

Je l'ai résolu moi-même.

  1. Réponse simple : déplaceztransitionvers une pseudo-classe, c'est-à-dire:hover; ou n'utilisez pas de CSS natif et utilisezng-animateà la place, mais dans de nombreux cas, la solution native est plus simple queng-animate.
  2. Réponse complète : voir https://github.com/angular/angular.js/issues/6395.
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!