在以编程方式更新文本输入后更新ng-repeat过滤器

时间:2014-04-17 23:34:06

标签: javascript jquery angularjs angularjs-ng-repeat

我正在使用jQuery自动完成来开始为输入文本输入的用户填写值。

<input type="text" ng-model="tags" name="tags" id="tags" value="" />

后来我的ng-repeat正在根据该文本过滤事物

<div ng-repeat="ability in abilities | tagsFilter:tags">
 {{ ability }}
</div>

在jQuery自动完成内部,有一个回调函数,用于当用户从自动完成下拉菜单中选择一个项目时。

    select: function( event, ui ) {
      var terms = split( this.value );
      // remove the current input
      terms.pop();
      // add the selected item
      terms.push( ui.item.value );
      // add placeholder to get the comma-and-space at the end
      terms.push( "" );
      this.value = terms.join( ", " );

      // I Want to tell angularJS to update

      return false;
    }

我如何告诉我的ng-repeat更新?

我试过查看$ scope.apply()但是$ scope不在jQuery回调的范围内。

1 个答案:

答案 0 :(得分:1)

您应该可以从那里访问范围。

试试这个:

var scope = angular.element($('#tags')).scope();

scope.$apply(function() {
  // your apply function goes here
})