컨트롤러 비동기 함수가 해결 될 때 요소 속성을 표시하거나 숨기거나 변경하는 방법은 무엇입니까?

Patrioticcow

일부 html 요소가 있으며 사용하여 숨겨져 있습니다. ng-hide

<ion-list>
        <ion-item class="ng-hide" ng-show="isLoggedin()" ng-click="login()">Login</ion-item>
        <ion-item class="ng-hide" ng-show="isLoggedin()" href="#/app/register">Register</ion-item>
</ion-list>

컨트롤러에는 비동기 기능이 있으며 문제가 해결되면 해당 링크를 표시하고 싶습니다.

$scope.isLoggedin = function(){
    $scope.$on('some_function', function () {
        //this will resolve at some point
        return true;
    });
};

아이디어는 isLoggedin()true 반환 ng-show하면 true로 설정됩니다.

im not set on using ng-show="isLoggedin()", 다음을 사용하는 한 다른 솔루션이 될 수 있습니다.

$scope.$on('some_function', function () {
    //this will resolve at some point
});

나는 일부를 설정 id's하고 요소를 잡고 컨트롤러에서 클래스를 변경할 수 있지만 해결을보고 요소가 표시하도록 알릴 방법이 있는지 생각하고있었습니다.

어떤 아이디어?

hon2a

귀하의 코드는 나에게 꽤 이해하기 어려운 것 같습니다. 예를 들어 이벤트 관찰자에서 true를 반환하면 AFAIK와 같은 작업이 전혀 수행되지 않습니다. 또한 동일한 요소에 class="ng-hide"사용할 때 수동으로 설정하지 마십시오 ng-show.

어쨌든, 내가 올바르게 이해한다면, 당신은 부울 속성을 생성하고 비동기 작업이 완료된 후에 설정하기 만하면됩니다.

$scope.$on('someEvent', function () {
    $scope.isLoadingFinished = true;
});

&

<item ng-show="isLoadingFinished">...</item>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관