gpt4 book ai didi

javascript - AngularJS 范围变量未定义

转载 作者:行者123 更新时间:2023-12-03 10:11:21 25 4
gpt4 key购买 nike

我是 AngularJS 新手,在使用作用域变量时遇到一些问题。

这是一个示例代码。我想知道为什么使用 ng-repeat 它显示 $scope.currencies 的值,但是当我尝试从 JS 访问时(console.log($scope.currencies))它返回“未定义”

<!DOCTYPE html>
<html>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="appCtrl">

<ul>
<li ng-repeat="x in currencies">
{{ x }}
</li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('appCtrl', function($scope, $http) {
$http.get("http://localhost:8080/currencies")
.success(function (response) {$scope.currencies = response;});


console.log("currencies are "+$scope.currencies);
});
</script>

</body>
</html>

我认为我对范围有一些误解,有人可以给我线索吗?

最佳答案

您的 console.log 语句位于 .success 方法之外。因此,它会立即运行。您应该将其放在 .success 方法中,如下所示:

var app = angular.module('myApp', []);
app.controller('appCtrl', function($scope, $http) {
$http.get("http://localhost:8080/currencies")
.success(function (response) {
$scope.currencies = response;
console.log("currencies are "+$scope.currencies);
});
});

此外,尝试使用 $log.debug() 而不是 console.log()。

app.controller('appCtrl', function($scope, $http, $log) {
...
.success(function (response) {
$scope.currencies = response;
$log.debug("currencies are "+$scope.currencies);

关于javascript - AngularJS 范围变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com