angualrjs - 过滤器无法处理`ng-model`更改

时间:2017-05-19 10:54:40

标签: angularjs angular-ngmodel

我的用于排序值的指令过滤器仅适用于页面加载。稍后在ng-model更改不更新集合以及过滤器根本不工作。

如果您发现我的错误,请更正我的演示

是否有人帮我解决问题?

这是我的代码:

app.directive("customGrid", function($timeout,$filter){
  return{
    scope:{ 
      "func":"&func",
      "pages":"=",
      "model":"=ngModel" //not updating?
    },
    template:temp.join(''),
    link : function( scope, element, attrs ){
      scope.slice = null;

      scope.sortIt = function( value ){
        console.log( value )
        scope.slice = $filter('orderBy')(value, '', true);//works on load
        $timeout(function(){
          scope.$apply();
        })
      }

      $timeout(function(){
       scope.slice = scope.pages.pin;
       scope.sortIt( scope.slice );

      })

    }
  }
})

Live Demo

1 个答案:

答案 0 :(得分:1)

我已更新了对模糊列表进行排序的示例,问题在于输入框的模型,我们需要更新列表以进行排序。

此外,您需要添加type = "number",否则您必须在指令控制器中每次都转换为数字。

检查plunker example

var temp = [
  "<ul><li ng-repeat='(key,value) in slice track by $index'>",
  "<input ng-model=slice[key]  type='number' ng-blur=sortIt(slice) /></li></ul>"
  ]