角度过滤器范围,其值大于值

时间:2016-12-02 12:11:14

标签: javascript angularjs html5 filter range

我想基于Angular创建过滤范围。这是我的html输入:

<input type="range" min="100" max="2000"step="100"
data-ng-model="value" >

当我使用它时,它会过滤一些值并以ng-repeat显示:

<div data-ng-repeat="x in names | rangeFilter:'Cost':value  ">
{{ x.Cost}}
</div>

这些是来自json的值:

{"records":[{"Name":"First","Cost":"500"},{"Name":"Second","Cost":"300"},{"Name":"Third","Cost":"700"}]}

我的过滤器:

angular.module('app.filter.range',[])
    .filter('rangeFilter', function () {
    return function (items, attr, min) {
        var range = [];
        for (var i=0, l=items.length; i<l; i++){
            var item = items[i];
            if(item[attr]>=min){
                range.push(item);
            }


        }
        return range;
    };
});

它应该显示在范围输入栏中具有焦化值或等于值的记录。 它实际上适用于&#34; 1000&#34;值。当输入值为f.ex 400时,它显示第一和第三记录的成本。当大于700时,不显示任何记录,这是好的(导致第三个记录,最大的,是700)。但是当输入范围大于1000时,它会显示所有记录,尽管事实上它比记录中的成本值更大。问题是什么?感谢您提前解决方案:)

修改 还有一件事。 Json从服务器导入:

.controller('Ctrl',[
    '$scope', '$http',
    function($scope, $http){
    $http.get(path)
    .then(function (response) {
        $scope.names = response.data;
        }
        );

当我将值直接放入控制器时,它可以工作:

$scope.names = [
    { Nazwa: 'First', Kwota: 500  },
    { Nazwa: 'Second', Kwota: 300  },
    { Nazwa: 'Third', Kwota: 700  }         
];

你有什么想法吗? :)

0 个答案:

没有答案