我有以下代码,其中我使用axios库从coinmarketcap REST API获取比特币的值后尝试打印比特币的值。尽管该值在控制台中写得很好,但文本框仍然为空。我在这里犯什么错误?
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
function get_btc_value(){
// return this promise
return axios.get('https://api.coinmarketcap.com/v1/ticker/bitcoin/')
.then((data)=>{
console.log(data.data[0].price_usd)
return data.data[0].price_usd
})
}
get_btc_value().then(data => $scope.myVar = data)
});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<input ng-value="myVar">
</div>
</body>
</html>
答案 0 :(得分:2)
get_btc_value的成功回调发生在Angular之外。因此,可以使用sorted([(x, y) for x in [1, 2, 3] for y in [1, 2, 3]], key=lambda y:max(y))
或$scope.$apply()
来触发手表。这样文本框将得到更新。
$scope.$digest()