簡體   English   中英

在AngularJS中正確傳遞函數中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM