2014-10-03 1 views
2

저는 앱에서 ng-tag-input과 ui-block을 함께 사용하고 있습니다. 나는 자동 완성 ng 태그 입력을 사용하고 있습니다. 입력 태그에 3 글자를 입력하면 추천 태그가 표시되지 않습니다.blockui는 각도 js의 ng 태그 입력 라이브러리와 호환되지 않습니까?

그것은 오류가 제공합니다

Error: [$rootScope:inprog] $digest already in progress 
http://errors.angularjs.org/1.2.22/$rootScope/inprog?p0=NaNigest 
    at VALIDITY_STATE_PROPERTY (http://localhost:9000/bower_components/angular/angular.js:78:12) 
    at beginPhase (http://localhost:9000/bower_components/angular/angular.js:12966:15) 
    at Scope.$get.Scope.$apply (http://localhost:9000/bower_components/angular/angular.js:12755:11) 
    at HTMLInputElement.<anonymous> (http://localhost:9000/bower_components/ng-tags-input/ng-tags-input.min.js:1:4856) 
    at HTMLInputElement.jQuery.event.dispatch (http://localhost:9000/bower_components/jquery/dist/jquery.js:4641:9) 
    at HTMLInputElement.jQuery.event.add.elemData.handle (http://localhost:9000/bower_components/jquery/dist/jquery.js:4309:46) 
    at BlockUI.blkUI.factory.reset (http://localhost:9000/bower_components/angular-block-ui/dist/angular-block-ui.js:329:28) 
    at BlockUI.blkUI.factory.stop (http://localhost:9000/bower_components/angular-block-ui/dist/angular-block-ui.js:301:14) 
    at Object.blkUI.factory.utils.forEachFn (http://localhost:9000/bower_components/angular-block-ui/dist/angular-block-ui.js:453:19) 
    at Array.blkUI.factory.utils.forEachFnHook.arr.(anonymous function) [as stop] (http://localhost:9000/bower_components/angular-block-ui/dist/angular-block-ui.js:458:15) 

하지만 app.ng-tag-input에서 UI 블록을 제거 할 때 잘 작동한다.

컨트롤러 :

var app = angular.module('plunker', ['ngTagsInput','blockUI']); 

app.controller('MainCtrl', function($scope, $http) { 
    $scope.tags = [ 
    { text: 'Tag1' }, 
    { text: 'Tag2' }, 
    { text: 'Tag3' } 
    ]; 

    $scope.loadTags = function(query) { 
    return $http.get('tags.json'); 
    }; 
}); 

HTML :

<body ng-controller="MainCtrl"> 
    <tags-input ng-model="tags"> 
     <auto-complete source="loadTags($query)"></auto-complete> 
    </tags-input> 
    <p>Model: {{tags}}</p> 
    </body> 

내가 나를 어떻게이 문제를 극복 할 수 제안 UI 블록은 NG-태그 input.please와 호환되지 않습니다 생각하십니까? 라인 594 [fnName] .apply (t, 인수)을하여 $ 초과 주입 후 t에서 사용 바로 아래 같은 블록 - ui.js 각도에서 see plunker

+0

나는 UI 블록이 어떻게 작동하는지 알지 못합니다. 나는 나중에 그것을 조사하려고 노력할 것이다. –

답변

1

:

blkUI.factory('blockUIUtils', function($timeout) { 

     var $ = angular.element; 

     var utils = { 
     buildRegExp: function(pattern) { 
      var match = pattern.match(/^\/(.*)\/([gim]*)$/), regExp; 

      if(match) { 
      regExp = new RegExp(match[1], match[2]); 
      } else { 
      throw Error('Incorrect regular expression format: ' + pattern); 
      } 

      return regExp; 
     }, 
     forEachFn: function(arr, fnName, args) { 
      var i = arr.length; 
      while(i--) { 
      var t = arr[i]; 
      $timeout(function(){ 
       t[fnName].apply(t, args); 
      }); 

      } 
     }