Ste*_*ess 1 javascript angularjs ng-tags-input
我有这个 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>
Run Code Online (Sandbox Code Playgroud)
这会创建一个与 Stackoverflow 上类似的标签输入字段。这是正在使用的包http://mbenford.github.io/ngTagsInput/
现在 loadGenres 将返回一个像这样的对象{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" }, ..]
Run Code Online (Sandbox Code Playgroud)
我需要的:
"genre" : [1, 5]
Run Code Online (Sandbox Code Playgroud)
使用 ES2015,我们可以更简洁地编写此代码。
const result = film.genre.map(({id}) => id);
Run Code Online (Sandbox Code Playgroud)
var result = film.genre.map(function(genre) {
return genre.id;
});
Run Code Online (Sandbox Code Playgroud)
真的应该是您所需要的,请参阅下面的链接,了解您的流派的工作示例。
https://jsbin.com/hoxucikako/edit?js,console,output
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |