2017-03-15 3 views
1

사용자 프로필을 만들고 프로필 소유자 만 표시하는 수정 단추를 표시하려고합니다. 편집 기능이 DOM에서 제거되도록 ng-if를 사용하려고합니다.ng-if를 사용하여 현재 사용자를 기준으로 버튼을 표시하려면 어떻게해야합니까?

ng-if를 사용하여 현재 사용자를 기준으로 버튼을 표시하려면 어떻게해야합니까? 내보기에서

:

<button ng-if="editProfile()">EDIT</button> 

내 컨트롤러에서 :

$scope.editProfile = function (canedit) { 
    var canedit = false; 
    for (var i=0;i<$scope.users.length;i++) { 
    if ($scope.users[i].id===$scope.currentUser.id) { 
     canedit = true; 
    } 
    } 
} 
+1

괜찮 았는데, 문제는 당신이 'return' – George

답변

0

모두가 언급 한 바와 같이 false이, 함수가 true 또는 false를 반환하지 않은십시오. 반환을 추가 한 후 for 문이 불필요하다는 것을 알았고 간단한 체크가 필요했습니다. 이 코드는 올바르게 작동합니다 :

$scope.editProfile = function() { 
    if ($scope.user.id===$scope.currentUser.id) { 
    return true 
    } 
    return false 
} 
0

당신은 당신의 기능에서 아무 것도 반환하지 않습니다.

당신은

0

그냥 브래킷을 닫는 아래

return canedit; 

를 추가 이런 식으로 할 수 있습니다 레 true 또는

<button ng-if="editProfile()">EDIT</button> 


$scope.editProfile = function() { 
    for (var i=0;i<$scope.users.length;i++) { 
    if ($scope.users[i].id===$scope.currentUser.id) { 
     return true 
    } 
    } 
    return false 
} 
1

함수가 필요

<button ng-if="canEdit()">EDIT</button> 

및 컨트롤러에

$scope.canEdit = function() { 
    return $scope.users.find(u=>u.id === $scope.currentUser.id) ? true : false; 
}