2016-07-08 3 views
1

두 번째 클릭에서하고 FUNC를 호출 작동 내가 처음 클릭 할 때. 각도 NG 클릭 내가 모달을 열 <code>ng-click</code>을 사용하고

professionInfo() FUNC입니다 : 서버에서

$scope.professionsInfo = function() { 
    $http({ 
     url: '/SafetyManager/professions', 
     method: "GET", 
    }).success(function (response) { 
     $scope.professions = response; 
     for(var i = 0, len1=$scope.info.professions.length; i<len1; i++) { 
      for(var n=0, len2=$scope.professions.length; n<len2; n++) { 
       if($scope.info.professions[i].id == $scope.professions[n].id) 
        $scope.professions[n].disabled = true; 
      } 
     }  
    }); 
}; 

FUNC 정확한 데이터를 반환하고, $scope.professions에 업데이트 (내가 알고 있기 때문에 드롭 다운 목록에 표시 데이터) 루프에 대한이 실패 하지만, 브라우저에서 오류 :

"TypeError: Cannot read property 'professions' of undefined"

그런 다음 모달을 닫고 다시 클릭하면 오류가 없습니다. 하지만 새로 고침을하면 첫 번째 클릭시 오류가 반환되고 두 번째 오류에서는 오류가 사라집니다.

어떻게 고칠 수 있습니까?

+0

data-target = "# editWorkerModal" –

+0

제거 방법 : $ scope.info.professions –

+0

차이점은 다음과 같습니다. $ scope.professions & $ scope.info.professions? 클릭하면 $ scope.professions에 응답이로드됩니다. 다른 하나는로드되고 있습니까? –

답변

2

ng-click에서 두 가지 기능을 호출하지 마십시오. 대신 ng-click 함수에 다른 함수를 포함하십시오.

예를 들어 당신의 HTML :

<a ng-click="workerInfo(worker.id);"> 
    <i class="glyphicon glyphicon-edit white"></i> 
</a> 

컨트롤러 :

$scope.workerInfo = function(workerID) { 
    // Do something 
    $scope.professionsInfo(); 
}; 

$scope.professionsInfo = function() { 
    // Do something else 
} 

편집 :

그리고 당신이 $scope.professionsInfo HTTP 응답에서 성공을 얻을 후에 만 ​​열어 모달를 호출합니다.

또는 둘을 더 잘 결합하고 먼저 HTTP 요청을 수행하는 하나의 함수를 호출 한 다음 모달 창을 열고 필요한 나머지 작업을 수행하십시오.

+0

!! workerInfo에 professionsInfo를 추가하면 문제가 해결되었습니다 :) –

0

동일한 문제가 있었지만 한 번 작동하는 메서드를 호출했습니다.

내 페이지에서 공장을 만들고 모든 아약스 통화를 유지했습니다. 이제 컨트롤러 부분에 모든 것이 쓰여지므로 공장 및 서비스의 용도는 무엇입니까?

관련 문제