2016-07-25 2 views
0

빌드하려고하는 구성 요소에 user_id을 적용한 다음 백그라운드에 해당 사용자 정보를로드 한 다음 다른 지시문이 첨부 된 페이지 요소를 삭제합니다.범위 속성 업데이트시 지침 템플릿 업데이트

지금까지이 내가 제대로 업데이트됩니다 내 Data 서비스의 배경과 템플릿의 user.user_name 데이터 로딩을 얻고있다

<user-popover user-id="item.item_high_bid_user_id"></user-popover> 

angular.module('bidrAdminApp') 
    .directive('userPopover', ['Data', function (Data) { 
    return { 
     template: '<a bb-popover-template="user-popover-content.html">{{user.user_name}}</a><i ng-hide="{{user}}" class="fa fa-spinner fa-spin" aria-hidden="true"></i>', 
     scope: { 
     userId: '=', 
     user: '=*' 
     }, 
     restrict: 'E', 
     controller: function($scope, $element, $attrs, Data){ 
     Data.getUser($scope.userId).then(function(userData){ 
      $scope.user = userData.data; 
     }); 
     }, 
    }; 
    }]); 

이 무엇이며,이 문제는 회 전자 숨겨져되지 않을 것입니다 $scope.user이 업데이트되면 사용자 데이터가로드되고 나머지 템플릿이 업데이트되면 회 전자를 숨기려면 어떻게해야합니까?

UPDATE

나는,이 지시자는 당신이 누군가를 통해 마우스를 가져 가면 페이스 북과 유사한 사용자 호버 카드와 같은 종류의 역할을하기위한 것입니다 여기에 이러한 지침 항목의 반복 그리드에 표시 언급 할 필요가 사용자에 대한 정보가 담긴 popover가 생기므로 모든 지시문이 $scope.user 속성을로드 한 후에 로딩 표시기가 숨겨 지므로이 지시문의 각 반복을 자체적으로 수행 할 수 있어야합니다.

+0

를 사용하여 지침의 범위 = * ''부분을해야한다 맞아. – Gatsbill

+0

@Gatsbill 이것을 제거하면 회 전자가 그대로 유지됩니다. – Jordan

답변

0

당신은 시도 할 수 :

ng-hide="user.user_name.length > 0" 
+0

아직 회 전자가 없습니다. – Jordan

+0

'ng-hide'는 직접 표현식을 사용하므로 대괄호로 묶을 필요가 없습니다. –

+1

바로 대답을 편집했고, 속성도 user_name이 아니 었습니다. – vodich

0

은 그냥 지침에서 범위를 제거하고 바로 '사용자'드롭 $attrs.userId

angular.module('bidrAdminApp') 
    .directive('userPopover', ['Data', function (Data) { 
    return { 
     template: '<a bb-popover-template="user-popover-content.html">{{user.user_name}}</a><i ng-hide="{{user}}" class="fa fa-spinner fa-spin" aria-hidden="true"></i>', 
     restrict: 'E', 
     controller: function($scope, $element, $attrs, Data){ 
     Data.getUser($attrs.userId).then(function(userData){ 
      $scope.user = userData.data; 
     }); 
     }, 
    }; 
    }]); 
관련 문제