我更新时遇到问题 <select>
使用 ng-init。
HTML:
<form data-ng-init="showStudent()">
<select id="studbranch" data-ng-model="student.branch"
data-ng-options="obj.name for obj in branches track by obj.id" required>
<option value="">-- Select Branch --</option>
</select>
</form>
输出:
<option value="">-- Select Branch --</option>
<option value="1">Branch 1</option>
<option value="2">Branch 2</option>
<option value="3">Branch 3</option>
在 JS 文件中:
$scope.branches = [{"id":"1","name":"Branch 1"},{"id":"2","name":"Branch 2"},{"id":"3","name":"Branch 3"}];
$scope.showStudent = function() {
$.getJSON('student.php', function(data) {
$scope.student = data[0]; $scope.$apply();
alert($scope.student.branch);
});
}
在页面加载(init)时,它会警告3。这意味着student.branch设置为3。但是选择不会更新。它保持默认值。可能出什么问题了?选择值是在初始化后设置的吗?
如果我添加$('#studbranch').val($scope.student.branch);
alert()
之后效果很好。
最佳答案
请尝试以 Angular 方式而不是 jQuery 进行操作
app.controller(function($scope, $http){
...
$scope.student = [];
$scope.showStudent = function() {
$http.get('student.php').then( function(data) {
angular.copy(data[0], $scope.student);
alert($scope.student.branch);
});
};
...
}
关于javascript - ng-model 不更新选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825880/