gpt4 book ai didi

javascript - $http 得到不刷新的结果

转载 作者:行者123 更新时间:2023-11-30 09:58:13 26 4
gpt4 key购买 nike

我正在尝试用 angularJS 做一些例子:

HTML:

<html ng-app="myApp">
<body ng-controller="JokesController">
<h1>{{ joke }}<h1>
</body>
</html>

脚本:

<script type="text/javascript">

m.factory('$jokeService', function($http, $interval) {

var service = {
joke: ""
};

service.randomize = function () {
$http.get("http://api.icndb.com/jokes/random")
.success(function(data) {
service.joke = data.value.joke;
console.log(service.joke)
})
.error(function(data) {
console.log(data)
});
}

$interval(function() {
service.randomize();
}, 2000)

return service;
});

m.controller('JokesController', function($scope, $jokeService) {
$scope.joke = $jokeService.joke;
});
</script>

笑话值未显示在 html 中。我错过了什么吗?

最佳答案

您需要在 Controller 中解决工厂返回的 promise 。我们还可以通过移动解析逻辑和更改注入(inject)来简化您的服务。观察以下变化...

.factory('$jokeService', function($http) {
function getJoke() {
return $http.get('http://api.icndb.com/jokes/random');
}

return {
getJoke: getJoke
};
});

.controller('JokesController', function($scope, $jokeService, $interval) {

$interval(function() {
$jokeService.getJoke().then(function(response) {
$scope.joke = response.data.value.joke;
});
}, 2000);
});

Plunker Link - 工作演示

关于javascript - $http 得到不刷新的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976001/

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