Я создаю директиву с несколькими текстовыми полями, используя 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>
Когда я пытаюсь вставить данные из других источников, они обрабатываются как пустые / пустые, из-за чего я не могу увидеть значение в текстовом поле.