2016-12-20 99 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元素的解決方案。 –