2016-12-20 64 views
2

我想知道,如何根据范围获取范围。 $ id。我知道我可以在页面中获得所有范围,然后我可以找到一个范围,但我寻求更简单的实现。

例如:
1.我想范围由id为从$ rootScope

$rootScope.$getScope(100) 

2.从当前$范围或可变

$scope.$getScope(100) 
angular.scope(100) 

我能否在西澳指定范围ÿ?

+0

检查此问题http://stackoverflow.com/questions/23253506/get-dom-element-by-scope-id/23255103#23255103 –

+0

谢谢,我知道它的工作原理,但我想避免DOM元素。 –

回答

0

答案表单注释使用jQuery。如果你想普通的JavaScript,功能更强大的方法,你可以这样做:

function getScope(scopeId){ 
    return Array.from(document.querySelectorAll(".ng-scope")) 
    .map(el => angular.element(el).scope()) 
    .filter(scope => scope.$id == scopeId)[0] 
} 

$rootScope.getScope = getScope;  

据我知道有没有其他办法找到网页上的所有范围不仅仅是查询.ng-scope

+0

嗯.. okej,但它也基于DOM元素,它类似于第一个解决方案@SaEChowdary(链接在下面的问题[链接](http://stackoverflow.com/questions/23253506/get-dom-element-by- scope-id/23255103#23255103)),但我正在寻找不使用DOM元素的解决方案。 –