這裏有一個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