2016-11-12 4 views
0

I가 파라미터로서 변수 설명을 얻어 다음 함수AngularJS와 적절히 함수 값을 전달

$scope.relsingle = function(description) { 
    console.log(description); 
    var url = $scope.url+'/api/descrelation?limit=4&description='+description; 
    $http.get(url).success(function(data) { 
     console.log(data); 
     $scope.apgresponse = data; 
    }) 
}; 

I HTML 페이지

ng-init="relsingle(prodres[0].description)" 

이 값에서이 값을 전달하기 위해 다음 방법을 사용하여 prodres [0]. 설명은 여기에서 온다. Console output

그리고 내가 relsingle 기능 콘솔에서 설명의 가치를 로그인 할 때 prodres의 값은 여기

$scope.prodat = function(id) { 

    var uri = $scope.url+'/api/getproduct?productid='+id; 
    console.log(uri); 
    $http.get(uri).success(function(data) { 
     console.log(id); 
     console.log(data); 
     $scope.prodres = data; 
    }) 
    }; 

에서 온다.

console.log (설명);

이렇게하면 값이 정의되지 않습니다.

+0

I에서 사용할 수 있습니다 scope.Then은 $ 범위에 변수에 해당 배열을 저장하지 않은 때문입니다 때문입니다 ng-init은 함수를 실행하는 것과 잘 맞는지 확실하지 않은 표현을 다루기 위해 빌드 된 것이라고 생각하십시오. – GillesC

+0

'prodres '란 무엇입니까? – dfsq

+0

relsingle 내가 정의한 사용자 정의 함수입니다 –

답변

1

ngInit과 같이 한 번만 실행되고 비동기 호출에서 발생하는 변수 prodres은 아직 사용할 수 없기 때문에이 작업을 수행 할 수 없습니다. ngIf가 더 높은 우선 순위를 가지고

<div ng-if="prodres" ng-init="relsingle(prodres[0].description)">...</div> 

때문에 ngInit은 ngIf 후 실행합니다 :

은 당신이 그러나 할 수있는 일은 ngInitprodres의 값이 해결 된 후에 만 ​​실행하는 것입니다.

+0

처음에는'ng-init'을 사용하는 것은 나쁜 습관입니다. – charlietfl

+0

그래서 어떤 접근법을 따라야합니까? 이런 종류의 문제에 대해 적절한 접근법을 설명하십시오. –

+0

@ dfsq -이 문제를 해결하는 데 고마워합니다. –

0

잘 배열이 javascript.Use에서 함수를 호출을 다시 평가하고 기능