2016-12-20 3 views
2

Я хочу знать, как получить область видимости по объему. $ id. Я знаю, что я могу получить все области на странице, а затем я могу найти эту область, но я ищу более простую реализацию.

Например:
1. Я хочу, чтобы получить объем которой идентификатор от $ rootScope:

$rootScope.$getScope(100) 

2. Из текущей $ сферы или переменной углового

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

Могу ли я получить указанную область в том, что wa у?

+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

Hmm .. okej, но он также основан на элементах DOM, он похож на первое решение @SaEChowdary (ссылка ниже вопроса [ссылка] (http://stackoverflow.com/questions/23253506/get-dom-element-by- scope-id/23255103 # 23255103)), но я ищу решение без использования элементов DOM. –

Смежные вопросы