我正在尝试使用 Angular js 进行 api 调用。不幸的是,我似乎遇到了一些麻烦。我正在尝试将英雄名称传递到表单字段中,并使用该信息与我的后端 api 进行对话。不幸的是,当我尝试联系时,我没有收到任何响应数据。有关如何成功调用电话的任何提示?
这是 Controller 。
vm.errorMsg = '';
vm.hero = '';
function getCharacter(hero) {
$http({
method: "GET",
data: {
format: 'json'
},
url: "localhost:8080/character/heroByName/" + hero
}).then(function mySuccess(response){
vm.hero = response.data;
console.log(vm.hero);
}, function myError(response){
vm.errorMsg = response.statusText;
console.log(vm.errorMsg);
});
}
这是表单字段,您可以在其中输入英雄名称。
<div class="container">
<h2>{{character.title}}</h2>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="input-group">
<input type="text" class="form-control" placeholder="Wolverine" ng-model="character.hero">
<span class="input-group-btn">
<button class="btn btn-default" type="submit" ng-click="character.getCharacter(character.hero)">Go!</button>
</span>
</div>
</div>
</div>
</div>
最佳答案
您应该通过将函数分配给 vm.getCharacter
来将您的函数暴露给作用域。之后,您可以通过 ng-click="vm.getCharacter(character.hero)"
在您的模板中调用它。
Controller
vm.errorMsg = '';
vm.hero = '';
vm.getCharacter = getCharacter;
function getCharacter(hero) {
$http({
method: "GET",
data: {
format: 'json'
},
url: "localhost:8080/character/heroByName/" + hero
}).then(function mySuccess(response){
vm.hero = response.data;
console.log(vm.hero);
}, function myError(response){
vm.errorMsg = response.statusText;
console.log(vm.errorMsg);
});
}
模板
<button class="btn btn-default" type="submit" ng-click="vm.getCharacter(character.hero)">Go!</button>
关于javascript - Angular 中的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367704/