2016-05-05 10 views
1

データベースからデータを取得するアプリケーションをビルドします。 作成された2つの信頼性のドロップダウンサービス(カテゴリー)に取り込まれる 1.Categories 2.支店json treeバインドのAngularJSドロップダウンリスト

すべてのオプションを選択しますが(アレイのArray)JSONツリーから来ています。コントローラで

私はJSONをフェッチ:私はコードの下にしようと

HTMLで
$scope.categories = Categories.query(); 

<select class="form-control" name="category" ng-model="params.category" ng-options="item as item.name for item in categories track by item.category"> 
         </select> 

<select class="form-control" name="branch" ng-model="params.branch" ng-options="branch as branch.name for branch in categories[params.category].branches track by item.category.branch"> 
         </select> 

ドロップダウン1.カテゴリOKフェッチが、ドロップダウン2.枝は仕事をdoesntの。

ガイドできますか?

+0

ドロップダウン2のng-optionsでは、カッコ表記の中にドット表記を使用できないと思います。おそらくcategories.params.category.branchesです。プランナーを見ることは素晴らしいことですが。 – alphapilgrim

答えて

0

あなたは配列の配列を持っているので、params.category変数は配列への参照を保持すると思いますので、参照とインデックスを使用する必要があるのでcategories[params.category]で2番目の選択で使用することはできません。試してみることをお勧めします:categories[categories.indexOf(params.category)]

EDIT: 私はあなたのcategories配列がどのようなものか、と私はあなたのコードに応じてのみ推測することができ、同様にbranch配列に見えるかわからないので。 IFあなたのデータ構造は私が思うものに似ています - hereは働くプラカードです。

主なアイデアは、あなたのcategories配列内の要素がオブジェクトであるとbranches性質を持っている場合あなただけ(必要にドット表記を使用していないbranchesプロパティにアクセスすることができるよりも、あなたは$scope.params.categoryで、それへの参照を入れた後ということです配列categoriesに戻ります)。

+0

はこれを試しました:categories [categories.indexOf(params.category)]。branchesそして今、dropddownブランチだけがフェッチ - すべての相対ブランチを表示しますが、どれも選択できません。 – George300

+0

私の編集した回答をご覧ください。これが十分に役立たなければ、将来の議論のためにプランナーを使用する方が簡単になります。 – OzW

+1

非常に有用な答えです。これは2番目のドロップダウンでも機能しました: 'code' ng-options ="カテゴリ[categories.indexOf(params.category)]のブランチのためのブランチのためのブランチ。ブランチ ">'コード '私はいくつかの問題を持っています。バック。たくさんありがとう! – George300

関連する問題