2016-12-15 7 views
2

と一致するドロップダウンリストで設定し、選択した値。この私の$ scope.dataがAngularJS - 値が別のオブジェクト

$scope.data = [ 
    { 
     "projectedStart":"2016-12-14T00:00:00"  
    }, 
    { 
     "projectedStart":"2017-01-04T00:00:00"  
    }, 
    { 
     "projectedStart":"2017-01-11T00:00:00"  
    } 
]; 

どのように見えるかこれは何である

https://plnkr.co/edit/8xjmL9?p=preview

以下の私のplunkrを参照してください。私のscope.possibleDatesのように見える

$scope.possibleDates = [ 
    { 
     "projectedStartDate":"2016-12-07T00:00:00", 
     "dateName":"December - Week 1" 
    }, 
    { 
     "projectedStartDate":"2016-12-14T00:00:00", 
     "dateName":"December - Week 2" 
    }, 
    { 
     "projectedStartDate":"2016-12-21T00:00:00", 
     "dateName":"December - Week 3" 
    }, 
    { 
     "projectedStartDate":"2016-12-28T00:00:00", 
     "dateName":"December - Week 4" 
    }, 
    { 
     "projectedStartDate":"2017-01-04T00:00:00", 
     "dateName":"January - Week 1 (20/10)" 
    }, 
    { 
     "projectedStartDate":"2017-01-11T00:00:00", 
     "dateName":"January - Week 2 (20/10)" 
    } 
] 

これは私のse私は結構です、すべての$ scope.possibleDatesのDATENAMEプロパティのリストをドロップダウンを表示しようとしていますが、私は 'で一致する値を選択しているしたい

<table class="table table-bordered table-hover"> 
    <thead>     
     <tr> 
     <th >Projected Date</th> 
    </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="d in data"> 
      <td> 
       <select class="form-control" 
          ng-model="selectedValue" 
          ng-init="selectedValue = {{data.projectedStart == dates.projectedStartDate}}" 
          ng-options="dates.dateName for dates in possibleDates"> 
       </select> 
      </td> 
     </tr>            
    </tbody> 
</table> 

明らかに間違っているどのようLECTが見えます$ scope.Data内の "projectedStart"を入力してください

+0

は、あなたの 'NG-repeat'の文を表示することができます -

<select class="form-control" ng-model="d.projectedStart" ng-options="dates.projectedStartDate as dates.dateName for dates in possibleDates"> </select> 

私はplunkerを更新しましたか? –

+0

ng-repeatを見ることができるようにテーブル全体で質問を更新しました – aliaz

答えて

3

ng-initを使って新しいモデルを定義する必要があるとは思わないし、使い方も間違っています。フィールドを更新するモデルをバインドする必要があります。この場合、projectedStartのプロパティはdataの配列です。ドロップダウンモデルとして設定してください。今度は、ng-optionを設定して、dateNameが選択されたときには、projectedStartのプロパティを値として設定する必要があります。 次のコードはあなたにとって最適なオプションです。 https://plnkr.co/edit/Hd2UBec1ULK6XQ2H26hC?p=preview

+0

あなたに感謝、あなたは天才です。これはまさに私が欲しかったものです。 – aliaz

0

{{}}ng-initの式に入れる必要があると思います。私はこれがあなたのために働くだろうと思い

ng-init = "selectedValue = (d.projectedStart == dates.projectedStartDate)" 

: はまた、あなたはただ、これを試してng-repeat声明

d in dataを定義したとして、d代わりのdataを使用する必要があります。

オルタナティブ:

あなたはselect文の代わりにこれを試すことができます。

<select class="form-control" ng-model="selectedValue"> 
    <option ng-repeat="dates in possibleDates" ng-selected = "d.projectedStart == dates.projectedStartDate">dates.dateName</option> 
</select> 
+0

代替方法を試しましたが、