2016-11-15 107 views
0

http://plnkr.co/edit/LZUa1tm7EROk8zcw6sGh?p=preview檢查在JS DOM元素存在/ angularjs

angular.module('myModule', []) 
    .controller('myDirective', function() { 
    console.log(angular.element('.myClass').prop('offsetWidth')); 
    }); 

我要檢查,其中DOM是可見或不可見的angularjs。但得到了myClass的錯誤不是函數?

+0

適當的JavaScript方法你能顯示問題的控制檯輸出? – McBoman

+1

您的控制器名稱在myDirective中,並且您將ng-controller設置爲myClass –

回答

1

將您的控制器名稱myDirective更改爲myClass

嘗試這樣

angular.module('myModule', []) 
    .controller('myClass', function($scope) { 
    var mClass = document.getElementsByClassName("myClass"); 
    console.log(angular.element(mClass).prop('offsetWidth')); 

    }); 

DEMO

ñ:乙:DOM相關的任務,應在指令代替控制器處理。

0

Angular.element與document.getElementsByClassName不同。 angular.element發生在一個元素,EG-

var elem = angular.element('<div class="myDiv">{{ model.input }}</div>') 

上面一個是正確的,但讓我們看看錯誤的版本太

var elem = angular.element('.myDiv') 

這一次不會工作

對你的情況做它是這樣的: -

angular.element($ document.find( 'div.myClass'))

注: - 你將不得不在控制器注入$文件,這樣你就可以保持角度格式的整個代碼,而不是使用像document.getElementsByClassName()

希望它可以幫助