【发布时间】:2015-05-26 21:12:10
【问题描述】:
我是 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 正在运行,然后来自 $http.get 的响应可以触发 .success 方法。此时,$scope.currencies 仍未定义。
-
您对 $q/$http/promises 的看法有误。
标签: javascript angularjs angularjs-scope angularjs-http