Anguarjs - `orderBy`在控制器中无法正常工作

时间:2017-05-14 06:19:39

标签: angularjs

我没有input字段可供用户编辑。当用户编辑我试图re-wrap数组的值时。当我这样做时,我想在控制器中对值进行排序。为此我做了:

gridView.resort = function( ){
        var start = new Date( );
        gridView.gridData = $filter( 'orderBy')(slice, "mk", true );
    }

当我安装过滤器时,我得到这样的结果:

119
gridData.js:22 879
gridData.js:22 470
gridData.js:22 420
gridData.js:22 392
gridData.js:22 347
gridData.js:22 293
gridData.js:22 234
gridData.js:22 170
gridData.js:22 120

但这不适合我。当我更改其中一个字段中的值较小的数字时,它位于第一行,而不是对整行进行排序。有什么帮助吗?

页面加载sortBy适用于我:

apiService.generateData( ).then(function( data ){

        var start = new Date( );

        gridView.gridData =  slice = $filter( 'orderBy')(data.splice( 0, 10 ), "mk");


    });

Live Demo (输入一些低值并查看输出)

1 个答案:

答案 0 :(得分:1)

正如@JB Nizet评论的那样,您应该考虑使用number代替text

还有一种方法可以处理在text事件中调用parseInt的{​​{1}},但请记住,当您输入时,这会在输入其他数字时抛出错误(意味着你必须控制输入的内容。)

查看工作example