[英]Passing value in function properly in 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] .description的此值來自此處。
產品價值就來自這里
$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;
})
};
當我在relsingle函數的控制台中記錄說明的值時。
console.log(description);
這給了我不確定的價值。
您無法使用ngInit
做到這一點,因為它只能運行一次,並且在發生這種情況時變量prodres
尚不可用,因為它來自異步調用。
但是,您可以做的是僅在解決prodres
的值后才使ngInit
執行:
<div ng-if="prodres" ng-init="relsingle(prodres[0].description)">...</div>
由於ngIf
具有更高的優先級,因此ngInit僅在ngIf
之后執行。
好吧,因為這是因為該數組尚未在javascript中求值。使用回調函數並將該數組存儲在$ scope范圍內的變量中,然后可以在該函數中使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.