var array = [];
$http.get('v1/someset')
.then(function(data) {
if(data){
mysize = data.data.size;
mysize.filter(function(e) {
array.push(e.name);
})
}
}).catch(function(error){
console.log("Error", error);
})
mysize =>
{id: "1", some_id: "1", name: "Small", active: "1"},
{id: "2", some_id: "1", name: "Medium", active: "1"}
{id: "3", some_id: "1", name: "Large", active: "1"}
{id: "4", some_id: "1", name: "X-large", active: "1"}
{id: "5", some_id: "1", name: "XX-large", active: "1"}
{id: "6", some_id: "1", name: "XXX-large", active: "1"}
如何从http获取名称get angularjs 它应该只返回
[“小”,“中”,“大”,“ X大”,“ XX大”,“ XXX大”] 并且可以在外面访问
答案 0 :(得分:1)
const mysize = [
{id: "1", some_id: "1", name: "Small", active: "1"},
{id: "2", some_id: "1", name: "Medium", active: "1"},
{id: "3", some_id: "1", name: "Large", active: "1"},
{id: "4", some_id: "1", name: "X-large", active: "1"},
{id: "5", some_id: "1", name: "XX-large", active: "1"},
{id: "6", some_id: "1", name: "XXX-large", active: "1"},
]
const names = mysize.map(i => i.name)
答案 1 :(得分:0)
您应该使用地图创建所需的arr类型
var array = [];
$http.get('v1/someset')
.then(function(data) {
if(data){
mysize = data.data.size;
//array is not the same as the array on the top
array = mysize.map(function(item){
return item.name
})
}
}).catch(function(error){
console.log("Error", error);
})
要返回数据,您应该返回一个诺言
apiService.js
var getData = $http.get('v1/someset')
.then(function(data) {
if(data){
var mysize = data.data.size;
var array = mysize.map(function(item){
return item.name
})
return Promise.resolve(array)
}
}).catch(function(error){
console.log("Error", error);
return Promise.reject(error)
})
和从控制器调用数据的人应该这样做
scope.data = []
apiService.getData().then(function(data){
//scope is accessible here
scope.data = data
})