保存 id 数组而不是对象
Save array of id's instead of objects
我有这个 HTML 元素:
<tags-input
ng-model="film.genre"
display-property="name"
key-property="id"
placeholder="Genre"
replace-spaces-with-dashes="false">
<auto-complete source="loadGenres($query)"></auto-complete>
</tags-input>
这会创建一个与 Whosebug 上类似的标签输入字段。这是正在使用的包 http://mbenford.github.io/ngTagsInput/
现在 loadGenres 将 return 像这样的对象 {name: "Genre name", id: 4}
。它将被存储到 film.genre
中。这是一个问题,因为 API 服务期望 film.genre = [4, ...]
基本上它必须是一个 id 数组。
我不太确定如何解决这个问题。我试图在我的 newFilm()
方法中创建一个空数组,循环 film.genre
并将其中的 id 添加到该数组,而不是将其分配给 film.genre
。然而,这不起作用,因为当我输出电影时,我仍然得到一个对象数组,其中 name: id 按某种逻辑。
我在 film.genre 中得到的:
"genre": [ 0: { "id": 1, "name": "Action" }, 1: { "id": 5, "name": "Comedy" }, ..]
我需要的是:
"genre" : [1, 5]
2019 年 3 月更新
有了ES2015我们可以写的更简洁
const result = film.genre.map(({id}) => id);
原版Post
var result = film.genre.map(function(genre) {
return genre.id;
});
真的应该是您所需要的一切,请参阅下面的 link 以获取适用于您的流派的示例。
我有这个 HTML 元素:
<tags-input
ng-model="film.genre"
display-property="name"
key-property="id"
placeholder="Genre"
replace-spaces-with-dashes="false">
<auto-complete source="loadGenres($query)"></auto-complete>
</tags-input>
这会创建一个与 Whosebug 上类似的标签输入字段。这是正在使用的包 http://mbenford.github.io/ngTagsInput/
现在 loadGenres 将 return 像这样的对象 {name: "Genre name", id: 4}
。它将被存储到 film.genre
中。这是一个问题,因为 API 服务期望 film.genre = [4, ...]
基本上它必须是一个 id 数组。
我不太确定如何解决这个问题。我试图在我的 newFilm()
方法中创建一个空数组,循环 film.genre
并将其中的 id 添加到该数组,而不是将其分配给 film.genre
。然而,这不起作用,因为当我输出电影时,我仍然得到一个对象数组,其中 name: id 按某种逻辑。
我在 film.genre 中得到的:
"genre": [ 0: { "id": 1, "name": "Action" }, 1: { "id": 5, "name": "Comedy" }, ..]
我需要的是:
"genre" : [1, 5]
2019 年 3 月更新
有了ES2015我们可以写的更简洁
const result = film.genre.map(({id}) => id);
原版Post
var result = film.genre.map(function(genre) {
return genre.id;
});
真的应该是您所需要的一切,请参阅下面的 link 以获取适用于您的流派的示例。