无法将范围值设置到 select 框

Not able to set scope value on to select box

我写了如下代码

<select ng-model="runnames" 
ng-options="runs.runname for runs in season.runs" 
ng-change="Onchangefunc(runnames)">

这很好用。但问题是,我想从另一个函数更改 selected 值。我将值设置为

$scope.runnames = 'A';

这是 JSON 的样子

[
  {"runid": "1","runame": "A"},
  {"runid": "2","runame": "B"},
  {"runid": "3","runame": "C"}
          ]

但是select值没有改变。我做错了什么??或任何其他要使用的功能?

查看本页顶部附近提供的示例 https://docs.angularjs.org/api/ng/directive/ngOptions,您可能需要确保 $scope.runnames 变量包含 'name' 的定义。即

$scope.runnames = { name: 'abc' };

ng-options 基于对象工作。

它是我们 key,它在 track by 中用于设置或选择选项。

为了我自己的目的,我对 HTML 进行了如下修改。

<select ng-model="runnames" 
ng-options="runs as runs.runame for runs in season track by runs.runid" 
ng-change="Onchangefunc(runnames)">{{runs}}
</select> 

和 JS

controller('testCtrl',function($scope){

    $scope.season = [
  {"runid": "1","runame": "A"},
  {"runid": "2","runame": "B"},
  {"runid": "3","runame": "C"}
          ] 

  $scope.runnames = {"runid": "3"}

})

ng-options 中使用 track by 并在外部函数中设置该值。

这是plunker