在 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的这个值来自这里。
而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;
})
};
当我在 relsingle 函数中记录控制台中的描述值时。
console.log(description);
这给了我未定义的价值。
你不能用 ngInit
这样做,因为它只运行一次,当它发生时变量 prodres
尚不可用,因为它来自异步调用。
然而,您可以做的是让 ngInit
仅在 prodres
的值被解析后执行:
<div ng-if="prodres" ng-init="relsingle(prodres[0].description)">...</div>
因为ngIf
有更高的优先级,ngInit只会在ngIf
之后执行。
嗯,这是因为数组尚未在 javascript.Use 回调函数中求值,并将该数组存储在 $scope scope.Then 的变量中,您可以在函数
我有以下函数,它将变量描述作为参数
$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的这个值来自这里。
而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;
})
};
当我在 relsingle 函数中记录控制台中的描述值时。
console.log(description);
这给了我未定义的价值。
你不能用 ngInit
这样做,因为它只运行一次,当它发生时变量 prodres
尚不可用,因为它来自异步调用。
然而,您可以做的是让 ngInit
仅在 prodres
的值被解析后执行:
<div ng-if="prodres" ng-init="relsingle(prodres[0].description)">...</div>
因为ngIf
有更高的优先级,ngInit只会在ngIf
之后执行。
嗯,这是因为数组尚未在 javascript.Use 回调函数中求值,并将该数组存储在 $scope scope.Then 的变量中,您可以在函数