这里有一个plunker演示问题:http://plnkr.co/edit/1ceWH9o2WNVnUUoWE6Gm通过jQuery添加NG-style属性,角度不更新
代码:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
console.log('yeah');
var header = $('#weird');
console.log(header);
header.attr("ng-style", "{'background-color' : 'red'}")
});
它添加了NG-style属性,但角度不知道关于它,所以它从来没有应用。
这是我想要做的简化版本,我试图在chessboard.js生成的国际象棋棋盘中的每个方块中添加一个ng样式的属性。我这样做是通过将ng样式属性添加到编译函数中的每个方块,就像我将ng样式属性添加到标头一样。如果有更好的方法来做到这一点,我很想知道它。如果不是,那么添加ng样式属性时如何才能更新角度?
我读过关于$scope
,$digest
和$apply
,我试过和他们一起玩,但一直没弄明白。什么是实现这一目标的最佳方式?
DOM操作应该在指令链接函数而不是控制器中处理。另外指令元素固有地使用jquery lite。我建议调查一下。 – Dom
我已经将它移入链接函数,但不幸的是仍然存在同样的问题。我不认为用jQuery lite代替jQuery会改变任何东西。 –
这是错误的做法。添加ngStyle并将其绑定到条件espression。你不应该动态添加属性 – pixelbits