. , "", , , .
-, "" jQuery Angular. , . :
script.js
$(document).ready(function() {
var $elements = $('input[type=hidden].select2remote');
$elements.each(function() {
});
});
, DOM . select2remote, DOM, select2 .
, [type = hidden].select2remote, , . , , , ng-repeat.
, select2 . , :
.directive('select2', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
element.select2({
});
element.on('change', function() {
console.log('on change event');
var val = $(this).value;
scope.$apply(function(){
ngModel.setViewValue(val);
});
});
ngModel.$render = function() {
element.value = ngModel.$viewValue;
}
}
}
});
, select2, API . , .
:
<input select2 type="hidden" class="form-control select2remote input-medium"
ng-model="contact.person.id"
value="{{ contact.person.id }}"
data-display-value="{{ contact.person.name }}"
data-remote-search-url="api_post_person_search"
data-remote-load-url="api_get_person"
ng-change="updatePerson(contact, contact.person)">
script.js.
:
$('.select2remote').on('change', function () {
console.log('change');
var value = $(this).value;
$scope.$apply(function () {
$scope.contact.person.id = value;
});
});
:
-, jQuery , .
-, select2remote , DOM, .
, , Angular (.. ng-repeat), , DOM ( ).
, , , , $scope. ng-model.
, , Angular (, jQuery $.ajax), . $apply() Angular.
, .