AngularJS-如何根据特定的JSON属性设置Select值?

时间:2018-09-29 05:21:30

标签: angularjs

我是AngularJS的初学者,在设置Select的ng-model的选定值时遇到问题。

这是我的数据结构:

[{"ID":0,"Name":"G"},{"ID":1,"Name":"PG"}]

这是我的HTML:

<div class="col-md-8" ng-init="GetAllRatings()">
      <select ng-model="InputMovieRating" ng-options="rating.Name for rating in ratings"></select>
</div>

我想这样做:

$scope.InputMovieRating = 'PG';

但是它不起作用。我发现有效的方法是遍历所有评分,例如:

    var selectedRating = $scope.ratings[0]; //default
    for (var i = 0; i < $scope.ratings.length; i++)
    {
        if($scope.ratings[i].Name == 'PG')
        {
            selectedRating = $scope.ratings[i];
        }
    }
    $scope.InputMovieRating = selectedRating;

这是可行的,但我认为这可能是一种错误的方式,而我在绑定ng-options时做错了事。

2 个答案:

答案 0 :(得分:1)

尝试以下

<div class="col-md-8" ng-init="GetAllRatings()">
  <select ng-model="InputMovieRating" ng-options="rating.Name as rating.Name for rating in ratings"></select>
</div>

如果您具有异步数据加载功能,请设置模型的值

  $scope.InputMovieRating = "PG";

数据加载完成后。

Demo

答案 1 :(得分:0)

可能错过了将对象分配给属性的情况 添加的只是一个值(PG)

$ scope.InputMovieRating = {“ ID”:1,“名称”:“ PG”}