jQuery 플러그인 select2를 사용하고 있으며 AngularJS에서 select2 함수를 호출하려고합니다. angular-ui/ui-select을 사용할 수 있지만 페이지 디자인에는 jQuery 플러그인 select2가 필요하다는 것을 알고 있습니다.AngularJS에서 jQuery 플러그인 함수를 호출하십시오.
모델의 값을 각도로 변경하고 select2의 값을 변경하고 싶습니다.
나는 각도 지침을 작성하고 내가 선택 2 함수를 호출하기를 원하지만 제대로 구현하는 방법을 모른다 : 수정이 오류 I에 대한
Error: [$rootScope:inprog] $digest already in progress
:
angular.module("myModule").directive("select2Value", [
function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
scope.$watch(function() {
element.select2().val(ngModel.$modelValue).change();
});
}
};
}
]);
나는이 오류가 이 솔루션을 사용하고 있습니다 : https://stackoverflow.com/a/36219812/6746305 :
angular.module("myModule").directive("select2Value", [
"$timeout", function($timeout) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
var timeout;
changeValue(function() {
element.select2().val(ngModel.$modelValue).change();
});
timeout = void 0;
scope.$watch(function() {}, function(newVal, oldVal) {
if (timeout) {
$timeout.cancel(timeout);
}
timeout = $timeout(changeValue, 1000);
});
}
};
}
]);
하지만이 기능이 작동하지 않습니다. 모델 각도에서 값을 변경하지만이 값은 select2에서 변경되지 않습니다.
당신은 $ 시계를 필요로하지 않습니다
솔루션 여기에서 찾을 수 있습니다 (당신이 블로그 감사합니다). 대신 ngModelController ('require : 'ngModel '')로 제대로 작업해야합니다. 또한 범위를 분리하고 추가 바인딩 (구성, 매개 변수 등)을 전달하는 것이 좋습니다. 그러나 이것은 논평을위한 거대한 주제입니다. – dfsq