это угловой проект, но у меня есть ситуация, в которой мне нужно получить значение поля ввода в мой контроллер без использования угловой двухсторонней привязки.
проблема в том, что мое поле ввода динамически добавляется в HTML с помощью следующего кода:
$( "#my-input-fields")
.append( "<li style='height:15px;' >" + " Type the id. code here:" +
"<input type='text' ng-model='c1.myVar' />" +
"</li>" )
.css( "list-style-type", "none");
несмотря на то, что c1.myvar правильно добавляется в html, он никогда не заполняется на контроллере, независимо от того, что я печатаю внутри поля ввода. другими словами, двустороннее связывание не работает.
Есть ли способ активировать двустороннее связывание html-переменной после того, как я добавлю ее динамически с помощью jquery? Кроме того, мне интересно, есть ли альтернативный способ получения значения c1.myVar, когда пользователь вводит его внутри.
Благодарю.
Перед добавлением его в DOM
вам нужно будет выполнить динамическую компиляцию, чтобы иметь возможность получать привязки с помощью $compile
. Вот как ты это делаешь.
var element = "<li style='height:15px;' >" + " Type the id. code here:" + "<input type='text' ng-model='c1.myVar' />" + "</li>"
var compile = $compile(element)($scope);
И теперь вы можете добавить его к элементу или где угодно
$( "#my-input-fields").append(compile )
Не забудьте ввести $compile
в ваш контроллер