#angularjs
#angularjs
Вопрос:
Здравствуйте, для целей моего кода мне нужно определить, перекрывается ли конкретная $scope
область или нет. Представьте, что где-то внутри вашего кода вам нужно создать .parent().parent()...parent()
и вам нужно проверить, является ли результирующая область видимости включенной или нет. Есть ли способ это сделать?
[Моя цель]
Моя цель — создать что-то вроде:
if($scope.isTranscluded()) {
//do one thing.
} else {
//do another thing.
}
Спасибо за ваше время!!!
Комментарии:
1. Смотрите zachsnow.com /#!/blog / 2013/angularjs-множественная трансклюзия
2. если вам приходится делать
.parent().parent()...parent()
, вы делаете что-то неправильно3. @charlietfl Я не выполняю .parent().parent()…parent(). Для объяснения моей логики здесь потребуется некоторое время, но логика в данном случае не имеет отношения к вопросу. Извините за беспорядочный пример.
Ответ №1:
Удивительно, но у вас есть внутреннее частное свойство: $$transcluded
Таким образом, вы можете проверить: if($scope.$$transcluded) {
Однако, поскольку это частное свойство ($ $), вы не можете полагаться на то, что оно не будет нарушено в будущих версиях.
Вам также следует взглянуть на исходный код
https://github.com/angular/angular.js/blob/v1.2.19/src/ng/compile.js#L976
Комментарии:
1. Большое спасибо за решение! Кажется, я пропустил это свойство. Что касается того, что $ $ transcluded является закрытым, к сожалению, я это знаю, но я уже полагаюсь на некоторый закрытый код angular, так что это решение идеально подходит для моей проблемы. Спасибо! 1.