我有一个带有表格和选择的简单页面。我需要应用具有html选择中预选的默认值的过滤。当页面完成加载阶段时,需要立即应用过滤器。这是我的代码:
选择:
<select class="span2" ng-model="fiASS">
<option></option>
<option>Ftse Mib</option>
<option ng-selected="selected">Nasdaq</option>
<option>Dow Jones</option>
<option>Dax</option>
<option>Cac40</option>
</select>
转发器和过滤器
<tr ng-repeat="obj in titoliASS | filter:filtroASS | filter:exchange| filter:poASS | orderBy:predicateASS:reverseASS">
<td>{{obj.TITOLO}}</td>
<td class="hidden-phone">{{obj.INDICE}}</td>
<td>{{obj.POSIZIONE}}</td>
<td class="hidden-phone">{{obj.PREZZO}}</td>
<td class="hidden-phone">{{obj.S1}}</td>
<td class="hidden-phone">{{obj.R1}}</td>
<td class="hidden-phone">{{obj.S2}}</td>
<td class="hidden-phone">{{obj.R2}}</td>
<td><a href="Technical_Analysis.html?idtitolo={{obj.ID}}&titolo={{obj.TITOLO}}"><i class='icon-signal xmlcursor'></i></a></td>
</tr>
select中的默认值预选有效,但未应用过滤器。 仅当我在select上更改值时才应用过滤器。 我希望问题很清楚。
THX。
答案 0 :(得分:2)
你有几个问题。首先,您的ng-selected
表达式与您的模型匹配不匹配。
其次,即使它确实如此,它也不会从html中获取它;需要在控制器的范围上设置fiASS
变量。
但是,假设select
的数据是静态的,您可以在控制器而不是HTML中对其进行编码并使用ng-options
:
<select ng-model='fiASS' ng-options='index for index in indices'></select>
在你的控制器中:
$scope.fiASS = 'Nasdaq';
$scope.indices = ['Ftse Mib', 'Nasdaq', 'Dow Jones', 'Dax', 'Cac40'];
这会在加载代码后正确设置模型,并且应该应用过滤器(假设它们依赖于fiASS
的值)。