angularjs - 过滤器不适用于动态输入和 ng-repeat

标签 angularjs angularjs-directive angularjs-ng-repeat

我正尝试根据输入文本框过滤我的转发器中的记录,但它工作异常,没有过滤正确的记录。

我的html代码:

<input ng-model="txtTest" type="text" class="form-control" id="txtTest"></input>

<table>
    <tr ng-repeat="SampleData in SampleInfo|MaxAmountFilter:txtTest" ng-form="SampleForm">
        <td>
            <div>
                <input type="text" name="DateOfLoss" ng-Model="SampleData.DateOfLoss" </input>
            </div>
        </td>
        <td>
            <div>
                <input type="text" name="LossDesc" ng-model="SampleData.LossDesc"> </input>
            </div>
        </td>
    </tr>
</table>

我的指令:

    AngularApp.filter('MaxAmountFilter', function () {
        return function(AmountArray, AmountEntered ) {
          var filteredAmount = [];

          angular.forEach(AmountArray, function (amt) {
              if (AmountEntered >= amt.LossAmount) {
              filteredAmount.push(amt);
            }
          });

          return filteredAmount;

        };
    });

我的范围数据-

    $scope.SampleInfo = [
        { "DateOfLoss": "01/01/2014", "LossAmount": "100", "LossDesc": "sasa"}, 
        { "DateOfLoss": "01/01/2015", "LossAmount": "500", "LossDesc": "ssss" }, 
        { "DateOfLoss": "01/01/2011", "LossAmount": "102", "LossDesc": "ddd" }, 
        { "DateOfLoss": "01/01/2012", "LossAmount": "700", "LossDesc": "hhhh"}, 
        { "DateOfLoss": "01/01/2010", "LossAmount": "250", "LossDesc": "dsdsd"}


];

这适用于静态值,即当我不根据文本框的输入值进行过滤时。代码有什么问题。请推荐!

编辑: Plnkr here 键入 101、102 然后它可以工作,但是当你在文本框中键入 10000 时它不起作用。现在从过滤器中删除 MaxAmountFilter:txtTest 并简单地添加 MaxAmountFilter:10000 这将起作用。

最佳答案

您的输入没有 ng-model="txtTest"。所以金额中输入的文本没有保存在txtTest中,因此txtTest是未定义的。

编辑:

另一个问题是您使用字符串来表示数字。看这个updated plunkr .使用数字类型的输入,并用数字替换对象中的字符串,一切都会顺利进行。

关于angularjs - 过滤器不适用于动态输入和 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726163/

相关文章:

javascript - 嵌套的 JSON 不显示在 ng-repeat 中

javascript - angularjs 嵌入和 ng-repeat : doing it right

node.js - AngularJS 和 NodeJs Express : routes and refresh

javascript - 在 Angular JS 中如果条件匹配则添加类

javascript - 使用过滤器的 Angular 突出显示和取消突出显示动态 html

javascript - 使用 angularjs 指令操作范围值

javascript - angularjs 指令中是否必须有链接函数?

javascript - 如何增加 ionic 列表的宽度?

javascript - Google map 未在 Angular 指令中正确初始化

javascript - 通过 Angular 指令在 html 模板中迭代配置数组?