私は、このHTML要素を持っている:保存IDの配列の代わりにオブジェクト
<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>
これはStackOverflowの上と同様のタグ入力フィールドを作成します。これは使用されているパッケージですhttp://mbenford.github.io/ngTagsInput/
ここでloadGenresは{name: "Genre name", id: 4}
のようなオブジェクトを返します。それはfilm.genre
に格納されます。 APIサービスはfilm.genre = [4, ...]
が基本的にidの配列でなければならないと予想しているので、どちらが問題なのですか。
これを修正する方法は完全にはわかりません。私は私のnewFilm()
メソッドのループをfilm.genre
で空の配列を作成しようとし、film.genre
に代入するよりもその配列にそのIDを追加します。しかし、これは、私はまだいくつかのロジックによって名前:IDのオブジェクトの配列を取得した後、私は映画を出力するように動作しません。私は必要なもの
"genre": [ 0: { "id": 1, "name": "Action" }, 1: { "id": 5, "name": "Comedy" }, ..]
:
"genre" : [1, 5]
途中でデータを変換できませんか? 'film.genre.map(g => g.id)' – Phil
あなたは何がそこにあり、あなたが望むものを両方の配列で提供できますか? –
@Phil APIサービスに行く最後の場所で、私がサービスで言及したように配列を再割り当てしようとしました。同じ結果、私もfilm.genre.map(..)を試しましたが、.map()が定義されていないというエラーが表示されます。 –