Как изменить стиль при изменении с AngularJS?

Сначала я инициализирую переменную с 0px:

<span ng-init="topStyle='0px';">

Тогда у меня есть блок, где мне нужен этот стиль:

<span ng-style="{top: '{{topStyle}}'}">

Но когда я изменяю это значение на что-то другое, стиль не меняется вообще. Вот что показывает мой браузер:

<span ng-style="{top: '-50px'}" style="top: 0px;"></span>

2 ответа

Решение

Размещенный вами код не работает должным образом, потому что когда приходит обновление, директивы не могут понять, что значение изменилось, и поэтому не обновляют атрибут stlye.

Причина в том, что ngStyle директива просто принимает переменные внутри нее, такие как:

ng-style="topStyle"

С topStyle как:

{top:'0px'}

А потом обновлять все это каждый раз.

Это пример (щелкнув по "click me", обновляет ngStyle): http://jsfiddle.net/tdegtLb4/2/

Или вы можете изменить ng-style в style и поэтому, когда переменная изменяется, значение, очевидно, обновляется соответственно.

Это тот же пример, что и приведенный выше style:

http://jsfiddle.net/tdegtLb4/1/

Пытаться:

<span ng-style="{top: topStyle}">.
Другие вопросы по тегам