0

我写了如下代码

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

这工作正常。但问题是,我想从另一个函数更改选定的值。我将值设置为

$scope.runnames = 'A';

这是 JSON 的样子

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

但是选择值不会改变。我做错什么了吗??或任何其他要使用的功能?

4

2 回答 2

1

ng-options 基于对象工作。

它是用于设置或选择选项的跟踪键。

我出于自己的目的修改了 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

于 2015-08-21T06:12:36.010 回答
0

查看此页面顶部附近提供的示例https://docs.angularjs.org/api/ng/directive/ngOptions,您可能需要确保您的 $scope.runnames 变量包含“名称”的定义。IE

$scope.runnames = { name: 'abc' };
于 2015-08-21T05:32:10.947 回答