Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – $apply使用typeahead插件时已经在进行中错误(发现与ng-focus ng-blur相关)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的主要问题是错误没有指向我的代码中的任何地方,我们的项目中没有那么多$apply调用.似乎产生错误代码
<input type="text" 
  placeholder="{{ $root.pg.t('HEADER.CITY_OR_POSTAL') }}"
  data-ng-focus="decideToStop();" data-ng-blur="decideToStart()"
  data-ng-model="search.SELEcted" 
  typeahead-on-SELEct="search.LOCATIOnQuery(geo_LOCATIOns,search.SELEcted)" 
  typeahead="LOCATIOn.name for LOCATIOn in getLOCATIOns($viewvalue) | filter: $viewValue | limitTo:8" class="semi-bold">

在控制器中:

$scope.decideToStop = function(){
  if($scope.actionTimeout){
    $timeout.cancel($scope.actionTimeout);
    $scope.actionTimeout = {};
  }


  $scope.Myservice.CustomMethodThatDoesALotOfThings();
};


$scope.decideToStart = function(){
  if(Customcatondition()){
    $scope.actionTimeout = $timeout(function(){
      $scope.Myservice.AnotherCustomMethodThatDoesALotOfThings();

    },150);

  }
};

$root.pg只是一个服务中的polyglot.js库,现在放在rootScope中.搜索是与位置搜索相对应的服务.

我在输入字段中更改城市时收到错误.我不知道如何调试这个……

这是同时使用Ng-focus和其他事件指令的问题.大多数情况下,当您使用其中一个事件指令(ng-click,ng-blur)来聚焦具有ng-focus的元素时,就会发生这种情况.它实际上一个错误,但您可以轻松修复它.最好的选择是编写自己的应用函数async的指令:
app.directive('ngFocusAsync',['$parse',function($parsE) {
  return {
    compile: function($element,attr) {
      var fn = $parse(attr.ngFocusAsync);
      return function(scope,element) {
        element.on('focus',function(event) {
          scope.$evalAsync(function() {
            fn(scope,{$event:event});
          });
        });
      };
    }
  };
}]

)

如果您不想这样做,您可以获取该指令的内容并手动将其应用于您的元素,但由于该指令非常小,因此该指令更可取.当它在核心中得到修复时,您可以简单地替换所有声明.

请在此处查看示例:http://plnkr.co/edit/GBdvtN6ayo59017rLKPs?p=preview如果使用Ng-focus替换ng-focus-async,则在单击按钮时或在模糊第二个输入字段时将出现角度.

大佬总结

以上是大佬教程为你收集整理的angularjs – $apply使用typeahead插件时已经在进行中错误(发现与ng-focus ng-blur相关)全部内容,希望文章能够帮你解决angularjs – $apply使用typeahead插件时已经在进行中错误(发现与ng-focus ng-blur相关)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。