У меня есть выпадающее меню, и я заполняю его массивом объектов. Я также назначаю значение по умолчанию для него, чтобы по умолчанию был выбран конкретный параметр. Когда я изменяю параметр на что-то еще, значение параметра изменяется (вы можете видеть это в пред-теге), но метка/текст опции не отображается. Если я попытаюсь выбрать еще один вариант сейчас, он выбирает опцию & также правильно заполняет ее метку/текст.Изменение параметра не отображает метку/текст опции в AngularJS
ВОПРОС:
Таким образом, после загрузки страницы, при изменении выбора параметра на другое значение, метка/текст не заполняет. Как исправить это, чтобы правильно отображалась соответствующая метка?
Вот весь мой код:
angular.module('myApp', [])
.controller('TodoCtrl', TodoCtrl);
function TodoCtrl($scope, $window) {
$scope.fieldObj = {};
$scope.allMembers = [{
"member_id": "1",
"firstname": "a"
}, {
"member_id": "2",
"firstname": "b"
}, {
"member_id": "3",
"firstname": "c"
}, {
"member_id": "4",
"firstname": "d"
}, {
"member_id": "5",
"firstname": "e"
}, {
"member_id": "6",
"firstname": "f"
}];
$scope.allMembers.unshift({
member_id: "new",
firstname: "Add New"
});
$scope.fieldObj.firstName = {};
$scope.fieldObj.firstName = {
"member_id": "3",
"firstname": "c"
};
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-rc.2/angular.js" rel="script"></script>
<div ng-app="myApp" class="container">
<h2>Todo</h2>
<div ng-controller="TodoCtrl">
<select ng-model="fieldObj.firstName" ng-options="member.member_id as member.firstname for member in allMembers track by member.member_id">
<option value=""></option>
</select>
<pre>
{{fieldObj.firstName | json}}
{{message}}
</pre>
<div ng-if="fieldObj.firstName === 'new'">New option was selected</div>
</div>
</div>
Просто измените '$ scope.fieldObj.firstName = {};' в '$ scope.fieldObj.firstName = '3'; '. И удалите '$ scope.fieldObj.firstName = { " member_id ":" 3 ", " firstname ":" c " };'. –