2016-10-05 72 views
1

我有以下代码:AngularJS:与NG-重复一起调NG-模型工作

<h3>Дата наведвання:</h3> 
<select class="form-control" size=info.size()> 
    <option ng-model="i.isSelected" ng-repeat="i in info" value="{{i.date}}">{{i.date}}</option> 
</select> 
<div class="container"> 
    <table class="table"> 
     <tr> 
      <td ng-repeat="i in info"><p ng-if="i.isSelected">Name: {{i.name}}</p></td> 
     </tr> 
    </table> 
</div> 

对不起,转储的问题。这很简单,我希望我的表根据选定的日期显示数据。请帮我弄清楚。

回答

4

ng-model应该在那里select不在option标记。由于ng-model只能在inputtextarea,select开箱即用。

Markrup

<h3>Дата наведвання:</h3> 
<select class="form-control" size="info.size()" ng-model="selectedInfo"> 
    <option ng-repeat="i in info" value="{{i.date}}">{{i.date}}</option> 
</select> 

ng-model="selectedInfo"将使在你选择双向绑定,&选择的值将可里面 selectedInfo $范围变量。


的最优选的方式通过使用ng-options

<h3>Дата наведвання:</h3> 
<select class="form-control" size="info.size()" 
    ng-model="selectedInfo" 
    ng-options="i as i.date for i in info"> 
</select> 

用于显示选择日期,你可以使用 selectedInfo变量来处理,选择带有选项,你并不需要遍历每个元素您的 info集合。你可以直接做 {{(info | filter: {date: selectedInfo: true })[0].Name}}(我不喜欢这种方法)。

正如你很有兴趣采取ng-model内的整个元素,ng-options可以很容易地实现(正如我前面所说的首选)。在ng选项的情况下,你可以做{{selectedInfo.Name}}

+0

此外,你应该尽可能地使用选择框时使用'ng-options'而不是'ng-repeat'。 – Claies

+0

@Claies我想补充一点,在我的回答中,感谢兄弟,欢呼声:-) –