샘플 애플리케이션을 구현 중이며 Twitter의 것과 유사한 Follow 버튼을 구현해야합니다. 다음 I 버튼을 부호화 한HTML 및 AngularJS 토글 버튼
,
<button class="btn pull-right{{setButtonStyle(S.Id)}}"
ng-class="{true:'btn-primary', false:'btn-secondary'}[!S.isFollow]"
ng-click="toggleFollow(S.Id)"> {{!S.isFollow && 'Follow' || 'Unfollow'}}
</button>
ng-click
기능도 DB 테이블을 처리 및 UI 버튼을 토글.
$scope.toggleFollow = function (userId) {
var element = $scope.followIds.indexOf(userId);
if (element == -1) {
// Follow user
$scope.Searched[Sindex].isFollow = !$scope.Searched[Sindex].isFollow; // Toggles the button
console.log("Follow called");
})
} else if (element > -1) {
// Unfollow user
$scope.Searched[Sindex].isFollow = !$scope.Searched[Sindex].isFollow; // Toggles the button
console.log("Unfollow called");
})
}
}
문제는 버튼이 무작위로 전환되지 않는다는 것입니다. 저는 AngularJS 다이제스트 루프가 버튼을 클릭 할 때마다 작동하지 않는다고 생각합니다.
버튼을 클릭 할 때마다 Angular 함수가 호출된다는 것을 알고 있습니다. 따라서 토글은 예상대로 실행되지 않습니다. 그렇다면 클릭 할 때마다 버튼을 어떻게 토글해야합니까? 귀하의 경우에는
해보십시오 $ 범위. $ – Lax
@Lax했던 마지막 함수 라인에서()에 적용됩니다. 'Error : [$ rootScope : inprog] $ already already in progress'을 읽는 중 오류가 발생했습니다 – Rai
plnkr이나 다른 것을 게시 할 수 있습니까? – Lax