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を使用し、 その値を外部関数に設定します。

プランカーはこちら

于 2015-08-21T06:12:36.010 に答える
0

このページの上部にあるhttps://docs.angularjs.org/api/ng/directive/ngOptionsの例を見ると、 $scope.runnames 変数に「名前」の定義が含まれていることを確認する必要がある場合があります。すなわち

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