2016-12-12 67 views
0

在我看來,我有幾個div的ID分別爲中找到的動態添加的類別名稱:如何使用角度

<div ng-src="{{board[0].url)}}" autosize="off" id="{{board[0].name}}"></div> 
    <div ng-src="{{{board[1].url)}}"autosize="off" id="{{board[1].name}}"></div> 

我需要獲取基於它們的ID這些div和將樣式應用到它。我怎樣才能做到這一點?有沒有這樣的事情:

angular.forEach($scope.boards, function(board){ 
    $document.find('#board.name').css({'width': board.position.width, 'height' : board.position.height}) 
} 
+0

也許一個自定義屬性,以鞏固樣式選擇比依靠動態值更好?例如,您可以將'data-id =「board」'添加到每個共享相同樣式的「board」div,並根據您的選擇器進行選擇。 – Nope

+0

所有的div都有不同的風格。這就是爲什麼他們應該有不同的ID –

+0

無論哪種方式,從動態值駕駛風格似乎不可靠和脆弱。如果您可以通過靜態值或位於可能更好的子/父關係中的位置來驅動樣式。但是,如果您可以讓腳本使用驅動動態標識符的相同變量,那麼它應該可以。 – Nope

回答

0

你不需要使用jQuery和ng-style指令可以做同樣的事情,你

<div ng-src="{{board[0].url)}}" ng-style="{width:board[0].position.width,height:board[0].position.height}" autosize="off" id="{{board[0].name}}"></div> 
<div ng-src="{{{board[1].url)}}" ng-style="{width:board[1].position.width,height:board[1].position.height}" autosize="off" id="{{board[1].name}}"></div> 
1

你可以

$document.find('#' + board.name).css({'width': board.position.width, 'height' : board.position.height}) 

但話又說回來,這個代碼需要在角度完成呈現HTML插值之後執行,這很難確定。

一個更好的方法是使用了NG-風格,是爲那些情況是這樣的:https://docs.angularjs.org/api/ng/directive/ngStyle

所以:

<div ng-src="{{board[0].url)}}" ng-style="{width: board[0].position.width, height: board[0].position.height}" autosize="off" id="{{board[0].name}}"></div> 

...