2014-04-14 33 views
2

添加元素在一個角指令我在做,我想這是angularjs CSS屬性沒有jQuery的

var node= element[0].cloneNode(true); 

然後我想的CSS添加到該元素的元素的副本。我知道你可以做到這一點

$(node).css({width: width, left: left, height: height, top:'0px'}); 

但我知道這是不好的做法,在角度指令使用。我試過

angular.node.css({width: width, left: left, height: height, top:'0px'}); 

但這不起作用。我搜索了互聯網,但一無所獲。我得到的只是jQuery的方式。有誰知道如何添加CSS角元素的方式?

任何幫助,謝謝!

回答

7

Angular附帶jqLite,這是一個精簡版的jQu​​ery。在指令中使用它沒有任何問題。 clone()css()可在jqLit​​e ...

var node = element.clone() 
        .css({width: width, left: left, height: height, top:'0px'}); 

工作例如:http://jsbin.com/yowubixa/1/edit?html,js,output

+0

感謝@anthony,我認爲這會工作,但我仍然得到一個'未捕獲的類型錯誤:無法讀取未定義'錯誤的屬性'css'。你知道這可能意味着什麼嗎? – user3339134

+0

你可以發佈你的代碼,也許在一個小提琴?我只是在一個指令的鏈接函數中嘗試了這一點,它工作。 –

+0

@ user3339134用示例更新答案。 –

0

ngStyle directive指令採用「表達式,該表達式對於鍵值爲CSS樣式名稱和值的對象是這些CSS鍵的相應值。

+0

感謝回覆@phylax。但是,我正在做的JavaScript /指令中的所有值,所以我不能使用ngStyle – user3339134

0

對於那些誰以後可能會發現這一點,我找到了解決我的問題。我無法做node.css()的原因是因爲node是一個dom元素。這是由於我的副本。要保持JavaScript對象,你必須做

angular.element(element[0]).clone() 

正確地克隆它。這然後允許我做node.css()。除了.css,你還可以做其他事情。你可以在這裏看看下面的內容。

http://docs.angularjs.org/api/ng/function/angular.element

希望這有助於!

0

開放.... component.js

angular.element(idName).css("background", "#000");

即Hello是idName的股利。

<div id="hello"></div>