javascript - ng-model 不更新选择值

标签 javascript angularjs

我更新时遇到问题 <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/

相关文章:

javascript - 访问 Web Component 的本地 DOM(从外部)并为其子项设置值

javascript - 使用具有用户定义字段的新请求者创建新的 Zendesk 票证

javascript - Angular js-值更改时突出显示dom

javascript - Angujar 1.3 无法使用 $watch 更改数据

javascript - Angularjs 对点击进行过滤

javascript - Angularjs - 无法读取未定义的属性 'split'

javascript - JS : sequence of execution of functions

javascript - 如何在 a href 标签之间放置一些文本?

javascript - 如何通过 URL 将变量传递给数据表搜索字段?

javascript - React Virtualized Select css 问题