У меня есть переменная контроллера Angular, определяющая внешний вид набора полей, которые я хочу отобразить в шаблоне. Начальное значение моей базовой модели правильно отображается во входном элементе, но оно не меняется, когда я изменяю содержимое этого элемента.
Вот код:
app.js
(function() {
var app = angular.module("my_app", []);
app.controller("MyController", function() {
var my_controller = this;
my_controller.model = {
"first_name": "fred",
"last_name": "jones"
}
my_controller.fields = [
{
"name": "first_name",
"label": "First Name",
"is_required": true,
"model": my_controller.model.first_name
},
{
"name": "last_name",
"label": "Last Name",
"is_required": true,
"model": my_controller.model.last_name
}
]
})();
template.html:
<div ng-app="my_app">
<div ng-controller="MyController as my_controller">
<div ng-repeat="field in my_controller.fields">
{% verbatim ng %}
<label for="id_{{ field.name }}" ng-class="field.is_required ? 'required' : 'optional'">{{ field.label }}: </label>
<input type="{{ field.type }}" class="form-control" name="{{ field.name }}" id="id_{{ field.name }}" ng-model="field.model">
{% endverbatim ng %}
</div>
</div>
</div>
(Не беспокойтесь о "{% verbatim ng %}" - это просто потому, что я использую Django.)
Это правильно отображает два поля ввода с начальным значением «fred» и «jones» соответственно. Но когда я меняю значение в этих полях, в объекте my_controller.model
нет соответствующего изменения.
Любые подсказки?
Спасибо.
ng-repeat
, когда ваша переменнаяmy_controller.fields
не является массивом? - person Aleksey Solovey   schedule 31.10.2017user_controller
? Если ваш контроллерmy_controller
. - person Stanislav Kvitash   schedule 31.10.2017user_controller
осталось от исходного кода; Очевидно, что это очень урезанный пример, просто чтобы проиллюстрировать проблему. - person trubliphone   schedule 31.10.2017