2016-11-12 6 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; 
    }) 
}; 

私は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

ですng-initは、実行中の関数でうまく動作しているかどうかわからない式を処理するためのビルドだと考えてください。 – GillesC

+0

'prodres'とは何ですか? – dfsq

+0

relsingleは私が定義したカスタム関数です –

答えて

1

ngInitでこれを実行することはできません。なぜなら、それは非同期呼び出しに起因するため、変数prodresはまだ使用できません。

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

ngIfはngInitだけngIf後に実行される優先順位が高いので:

あなたはしかし、行うことができますすることngInitprodresの値が解決された後にのみ実行させることです。

+0

最初に 'ng-init'を使用するのは悪い習慣です – charlietfl

+0

どのようなアプローチをとるべきでしょうか?この種の問題については、適切なアプローチを説明してください –

+0

@dfsq - この問題を解決してくれてありがとう –

0

配列はjavascript.Useにコールバック機能を評価し、$スコープに変数にその配列を格納されていないので、それはあるので、あなたが機能でそれを使用することができますscope.Thenまあ、それは私が

関連する問題