Привязка свойства Angular Directive к родительскому контроллеру - PullRequest
0 голосов
/ 29 ноября 2018

В директиве ma-resource-text-watch я делаю вызов API, чтобы получить список текстов ресурсов.Я хочу иметь возможность скрыть компонент alert, если API не возвращает тексты ресурсов.Кто-нибудь знает, как я мог бы сделать это?

<div ng-controller="IntroductionCntrl" class="hidden-print">
    <div class="container-fluid" ng-if="introductionResourceKey">
        <alert-component type="guidance">
            <span ma-resource-text-watch="{{introductionResourceKey}}"></span>
        </alert-component>
    </div>
</div>

1 Ответ

0 голосов
/ 29 ноября 2018

Ваша директива может принимать обратный вызов (или выражение), который будет запускаться при загрузке данных.Например, в определении директивы свойство scope может иметь:

scope: {
  onTextsLoaded: '&'
}

Директива может затем вызвать:

scope.onTextsLoaded({ texts: yourTexts })

И родительский контроллер может передать выражение какобратный вызов и используйте ng-show, чтобы скрыть alert-component:

<alert-component ng-show="dataIsLoaded && texts.length">
    <span ma-resource-text-watch="{{introductionResourceKey}}" on-texts-loaded="onTextsLoaded(texts)"></span>
</alert-component>

с функцией, определенной как:

$scope.onTextsLoaded = function(texts) {
    $scope.dataIsLoaded = true;
    $scope.texts = texts;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...