Angular ui-select: вставка не работает при копировании имен с другого сайта - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю директиву с несколькими текстовыми полями, используя ui-select, и данные копируются неправильно при копировании с веб-сайтов / блокнота и т. Д. Любая идея, как исправить приведенный ниже код. Я использую Angular 1.3.17 и ui-select версии 0.19.8.

Определение директивы:

(function () {

  'use strict';

  angular
    .directive('Multitextbox', Multitextbox);

  Multitextbox.$inject = ['state', 'length'];

  function Multitextbox(state, length) {
    return {
      restrict: 'E',
      replace: true,
      scope: {
        id: '@',
        label: '@',
        info: '@',
        attributeName: '@',
        value: '=model',
        form: '=',
        prop: '@',
        baseTag: '='
      },
      controller: function($scope) {

        $scope.model = {value: $scope.value || []};
        $scope.pasteTag = false;

        $scope.$watch('model.value', function() {
          $scope.model.value = $scope.model.value || [];
          $scope.value = $scope.model.value;
        });

        $scope.$watch('value', function(value){
          $scope.model = { value : value };
        });

        var setState = function(result) {
          $scope.state = result;
        };

        $scope.$on('$localeChangeSuccess', function() {
          state.get($scope.attributeName).then(setState);
        });

        $scope.tagTransform = function (newTag) {
          var tag = {};
          //JSON.parse(JSON.stringify($scope.baseTag));
          angular.extend(tag, $scope.baseTag);
          // var tag = $scope.baseTag;
          if(newTag.toString().length>$scope.maxLength){
              newTag = newTag.toString().substr(0,$scope.maxLength);
          }
          tag[$scope.prop] = newTag;
          return tag;
        };        
      }
    };
  }

})();

Directive Template :

<ui-select id="{{id}}" name="{{id}}" class="form-control" multiple tagging="tagTransform" tagging-label="false"  ng-model="model.value" >
            <ui-select-match placeholder="Add one...">
                <span data-toggle="tooltip" data-placement="bottom" title="{{$item[prop]}}">
                    <span ng-bind-html="$item[prop].toString() | limitText:true:16:'...'"></span>
                </span>
            </ui-select-match>
            <ui-select-choices repeat="item in model.value">
              <div>{{item[prop]}}</div>
             </ui-select-choices>
          </ui-select>

Когда я пытаюсь вставить данные из других источников, они обрабатываются как пустые / пустые, из-за чего я не могу увидеть значение в текстовом поле.

...