MusicBrainz应用程序|AngularJS的JSON对象的动态GET
Dynamic GET of a JSON object for MusicBrainz app | AngularJS
我想在我的小应用程序中添加一个搜索表单。但它必须将表单的结果发送到请求的链接。
我通过以下请求从musicbrainz JSON数据库中获取艺术家的姓名:http://search.musicbrainz.org/ws/2/artist/?query="艺术家姓名"%20e*&fmt=json
其中"艺术家的名字"是我想在表格中发布的名字。我对这个问题有点陌生,如果它有点愚蠢的话,我很抱歉,因为我在互联网上搜索了很多,我不能很好地理解。
这是表格:
<form ng-submit="search()" name="nomartiste">
<label>Rechercher:
<input type="text" ng-model="nom"/>
<input type="submit" value="Rechercher"></input>
</label>
</form>
这是JS:
function Artiste($scope)
{
$scope.nom = 'Muse';
$scope.search = function()
{
var url = "http://search.musicbrainz.org/ws/2/artist/?query=" + $scope.nom + "%20e*&fmt=json";
$http.get(url)
.then(function(response)
{
$scope.listenoms = response.data;
console.log($scope.listenoms);
})
}
}
它应该显示请求的结果,并将表单中的$scope.nom
作为参数
我倾向于补充一点,日志控制台中没有显示任何内容,即使是Json树:(
如果我理解正确,您希望显示运行查询的结果。因此,您发布了一个http.get,它返回一个名为response的JSON对象。但您随后尝试访问不存在的数据。
从"response.data"中删除"data"
使用您提供的URL,我收到了No 'Access-Control-Allow-Origin' header
响应。如果你没有看到任何东西,你的浏览器控制台可能会出于某种原因隐藏这一点。
从他们的web服务文档中,你应该使用这样的URL来搜索艺术家:http://musicbrainz.org/ws/2/artist/?query=artist:Muse.
注:我更改了这行:$scope.listenoms = response.data.artists;
var app = angular.module("app", []);
app.controller("controller", function($scope, $http) {
$scope.nom = "Muse";
$scope.search = function() {
var url = "http://musicbrainz.org/ws/2/artist/?query=artist:" + $scope.nom + "&fmt=json";
$http.get(url)
.then(function(response) {
$scope.listenoms = response.data.artists;
console.log($scope.listenoms);
});
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-app="app" ng-controller="controller">
<form ng-submit="search()" name="nomartiste">
<label>Rechercher:
<input type="text" ng-model="nom" />
<input type="submit" value="Rechercher"></input>
</label>
</form>
<table>
<thead>
<tr>
<th>Name</th>
<th>Country</th>
<th>Disambiguation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="artist in listenoms">
<td>{{artist.name}}</td>
<td>{{artist.country}}</td>
<td>{{artist.disambiguation}}</td>
</tr>
</tbody>
</table>
</div>
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 将对象动态插入到现有对象中
- 向对象动态添加属性
- 在JavaScript中将一个对象动态添加到另一个对象
- 如何基于对象动态创建和链接到页面
- 将数据从一个 json 对象动态添加到另一个 json 对象
- 如何制作从对象动态加载的图形
- 如何在jquery中对对象动态添加多个过滤器
- 如何在 JavaScript 中基于另一个对象动态创建属性和对象
- jQuery 和 AJAX - 使用 Ajax 添加的对象动态不适用于 jQuery 函数
- Javascript对象:动态创建属性和属性名称
- 如何在JavaScript中使坐标对象动态
- 如何将对象动态添加到对象中'的属性
- Javascript对象(动态属性名称)
- 从对象动态创建JQuery Mobile页面
- 为svg对象动态分配数据属性
- 如何为添加到另一个JSON文件中的每个对象动态创建JSON文件
- 将选择对象动态添加到表中
- 向Javascript对象动态添加新对
- 用Javascript对象动态构建HTML表