Angular.js默认过滤

时间:2013-02-20 18:37:24

标签: angularjs

我有一个带有表格和选择的简单页面。我需要应用具有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。

1 个答案:

答案 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的值)。

Here's a fiddle