2016-08-17 1 views
0
다음

코드 관련 조각입니다 : 내가 가진 HTML에서이 기능을 $의 scope.vote, 전화Angular Scope 문제 -> 기능을 한 번 사용하면 범위를 벗어 납니까?

$scope.newLike = LikeFactory.newLike; 
    $scope.newDislike = LikeFactory.newDislike; 
    $scope.updateLike = LikeFactory.updateLike; 
    $scope.updateDislike = LikeFactory.updateDislike; 

    $scope.vote = function(sockId, nnew, update) { 
    if (!$scope.verifyUser) $scope.alert("Please log in to like a sock!"); 

    if (!$scope.like.like && !$scope.like.dislike) { 
     return nnew(sockId).then(function(vote) { $scope.vote = vote; }); 
    } else { 
     return update(sockId).then(function(update) { $scope.vote = update; }); 
    } 
    } 

= "투표 (sock.id, newLike, updateLike)"또는 NG를 NG를 클릭 -click = "투표 (sock.id, newDisike, updateDislike)"와 같은 vs 싫어요 버튼.

angular.js:13642 TypeError: v2.vote is not a function 

내가해야합니까 : 거기 '와 같은'의 인스턴스가 특정 독특한 양말/사용자 콤보입니다하지만 하나의 '갱신'후 나는 오류를 얻을 때 좋아 한 번 업데이트 처음 호출 버튼이 잘 작동 $ scope에 계속 함수의 $ digest를 트리거 할 수 있습니까? 어떻게 든 사용 후 $ 범위에서 벗어나나요? 나에게 이상한 오류처럼 보입니다.

편집 : duh! 늦었 어, 해답을 가져 주셔서 감사합니다!

답변

1

그것은 여기, 정상 : $scope.vote = update 동일한 가변적이고을 사용하는 함수 이름

2

당신은 컨트롤러의 함수로 $scope.vote를 정의하는 것이. 약속합니다 (then 블록에) 해결 후

$scope.vote = function() {} // => 'vote' variable is holding a function 

$scope.vote = vote/update // => 'vote' might not reference a function but a value 

당신의 결과를 로그, 무엇을 이해하기 : 먼저 호출 한 후에는이 변수로 기능하지 않을 수 있습니다 결과를 할당하여 vote은 더 이상 기능하지 않습니다 새로운 할당 값입니다.

1

문제는 다음과 같은 문이어야합니다

$scope.vote = vote; 

vote이되지 않을 수도 있습니다 기능 등 v2.vote is not a function

관련 문제