Я создал виджет jQuery, который в основном добавляет больше функциональности и стилей CSS в собственный jQuery UI Datepicker. Я использую опцию onSelect
для datepicker для обновления <input>
соответственно. Проблема в том, что даже если входные данные меняются, модель в области $ не изменяется. Я знаю, что мне нужно использовать $ scope. $ Apply() каким-то образом уведомить угловой, что вход изменился.
Я пробовал следующее, но это не сработало.
this.options.onSelect = function (dateText, inst) {
$el.val(dateText);
that.$scope.$apply(); // This isn't working. I think I need to do something else
that.wrap.hide();
jQuery(document).find('.iconalt').hide();
if (that.options.afterSelect !== undefined) {
that.options.afterSelect();
}
}
Это должно быть очень распространенной проблемой ... правильно? Как никто не знает? Я делаю это неправильно? –
Если вы установили значение с помощью '$ el.val (dateText),' ваш ngModel не изменится и вам даже не понадобится '. $ Scope. $ Apply();' в этом случае. Я думаю, вам нужно обновить модель, а затем сделать scope.apply() – PSL
, если вам действительно нужно изменить DOM, создайте настраиваемую угловую директиву. также: http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background – mb21