2016-05-13 11 views
0

私は、この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] 
+1

途中でデータを変換できませんか? 'film.genre.map(g => g.id)' – Phil

+0

あなたは何がそこにあり、あなたが望むものを両方の配列で提供できますか? –

+0

@Phil APIサービスに行く最後の場所で、私がサービスで言及したように配列を再割り当てしようとしました。同じ結果、私もfilm.genre.map(..)を試しましたが、.map()が定義されていないというエラーが表示されます。 –

答えて

4
var result = film.genre.map(function(genre) { 
    return genre.id; 
}); 

は本当にとの作業例については、以下のリンクを参照してください、あなたが必要とするすべてである必要があり、私はfilm.genreに何を得る

あなたのジャンル。

https://jsbin.com/hoxucikako/edit?js,console,output

関連する問題