django-autocomplete-light и angular: как angular получить выбранное значение

Использование django-automcomplete-light V3 и angular на странице без администратора.
Использование виджета autocomplete.ModelSelect2

Где хранится выбранное значение? Используя firebug, он находится не в новом скрытом элементе html, и если я попытаюсь просмотреть исходный (теперь скрытый) элемент выбора, его значение никогда не изменится, если я изменю выбранное значение в виджете автозаполнения.

Как angular может смотреть/читать это значение?

Обновление:
Как указывает @visegan ниже, вы можете использовать синтаксис jquery для получения значения, но по какой-то причине вы не можете его просмотреть.

то есть эти часы никогда не срабатывают:

$scope.$watch(function(){
    return $('#id_field').val();
    },
    function(newVal, oldVal){
        console.log('current %r', newVal);
        $scope.models.foo=parseInt(newVal);
});

person w--    schedule 24.02.2016    source источник


Ответы (1)


Ну, я только что попробовал со своим проектом, и это было довольно просто:

$('#id_field').val()

Честно говоря, я также не уверен, откуда именно берется значение.

Что касается наблюдателя за изменениями: автозаполнение теперь использует компонент select2, что, по-видимому, немного проблематично с angular. Есть два работающих подхода: первый — добавить больше jquery:

$('#id_field').change(function() {alert('changed')});

Это я проверил. Другой подход - сделать это как-то изначально. Посмотрите на обработку событий Select2 с помощью Angular js

person Visgean Skeloru    schedule 24.02.2016
comment
да. это jquery и работает, но вы не можете посмотреть его по какой-то причине. см. мое обновление выше. Любые идеи? - person w--; 25.02.2016
comment
человек неприятный. спасибо за ваше обновление. я даже не думал, что select2 - это название плагина. Я думал, что это произвольное имя от дал. - person w--; 26.02.2016