2016-07-19 23 views
0

私は、グループタイプとサブグループタイプの2つのドロップダウンを持っています。グループタイプのAngular JSのフィルタ

<div class="form-group row"> 
     <label for="GroupType" class="col-sm-4 form-control-label">Group Type: </label> 
     <div class="col-sm-8"> 
      <select name="selGroupType" id="selGroupType" class="form-control" ng-change="referenceAddRecord.populateGroupTypeDetails(selGroupType)" ng-options="groupType.value for groupType in referenceAddRecord.groupTypes track by groupType.id" ng-model="referenceAddRecord.groupType"></select> 
     </div> 
    </div> 
    <div class="form-group row"> 
     <label for="SubGroupType" class="col-sm-4 form-control-label">Sub Group Type: </label> 
     <div class="col-sm-8"> 
      <select name="selSubGroupType" id="selSubGroupType" class="form-control" ng-change="referenceAddRecord.populateSubGroupTypeDetails(selSubGroupType)" ng-options="subGroupType.value.split('|')[0] for subGroupType in referenceAddRecord.subGroupTypes | filter: {subGroupType.value.split('|')[1] : referenceAddRecord.groupType.id} track by subGroupType.id" ng-model="referenceAddRecord.subGroupType"></select> 
     </div> 
    </div> 

値は

{id:1,Value:"A"} 
{id:2,Value:"B"} 

のようなものとサブグループの種類の値は以下のようです:

| <number>
{id:1,value:"Auction|1"} 
{id:2,value:"Bing|1"} 
{id:3,value:"TowerResearch|2"} 

グループid型です。

グループタイプの変更時に、それに応じてサブグループタイプのドロップダウンを変更したいとします。しかし

ng-options="subGroupType.value.split('|')[0] for subGroupType in referenceAddRecord.subGroupTypes | filter: {subGroupType.value.split('|')[1] : referenceAddRecord.groupType.id} track by subGroupType.id" 

が機能しませんでした。

私は間違っていますか?

エラーは、あなたが間違って何をしているSyntax Error: Token '.' is unexpected, expecting [:] at column 57 of the expression [referenceAddRecord.subGroupTypes | filter: {subGroupType.value.split('|')[1] : referenceAddRecord.groupType.id}] starting at [.value.split('|')[1] : referenceAddRecord.groupType.id}].

+0

あなたはどのフィドル/ pnnkrを追加することはできますか? –

答えて

1

言いますか?

フィルタ構文はfilter : {field_name: value}です。あなたはあなたがサブグループの種類を反復処理することができ、この

  • 用のカスタムフィルタを作成し、それにグループを追加する必要がありますあなたが

    1. を行うことができますどのようなこの構文

      を次されていません

      var subs = [{id:1,value:"Auction|1", group:1}, 
          {id:2,value:"Bing|1", group:1}, 
          {id:3,value:"TowerResearch|2", group:1}]; 
      subs.forEach(function(sub){ 
          sub.group = Number(sub.value.split('|')[1]); 
      }); 
      

    ザ・あなたまた、私は、引数がNGクリックするなどの機能を使用すると、モデルを渡していないと思います

    filter: {group : referenceAddRecord.groupType.id} 
    
  • +0

    カスタムフィルタを表示できますか?それにグループを追加する方法は? – StrugglingCoder

    +0

    @StrugglingCoder更新された回答を検索します。 –

    0

    を角度フィルタを使用することができます。

    <div class="form-group row"> 
        <label for="GroupType" class="col-sm-4 form-control-label">Group Type: </label> 
        <div class="col-sm-8"> 
         <select name="selGroupType" id="selGroupType" class="form-control" ng-change="referenceAddRecord.populateGroupTypeDetails(referenceAddRecord.groupType)" ng-options="groupType.value for groupType in referenceAddRecord.groupTypes track by groupType.id" ng-model="referenceAddRecord.groupType"></select> 
        </div> 
    </div> 
    <div class="form-group row"> 
        <label for="SubGroupType" class="col-sm-4 form-control-label">Sub Group Type: </label> 
        <div class="col-sm-8"> 
         <select name="selSubGroupType" id="selSubGroupType" class="form-control" ng-change="referenceAddRecord.populateSubGroupTypeDetails(referenceAddRecord.subGroupType)" ng-options="subGroupType.value.split('|')[0] for subGroupType in referenceAddRecord.subGroupTypes | filter: {subGroupType.value.split('|')[1] : referenceAddRecord.groupType.id} track by subGroupType.id" ng-model="referenceAddRecord.subGroupType"></select> 
        </div> 
    </div>