2015-08-21 59 views
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"} 
      ] 

但是選擇值不會改變。有什麼錯我正在做?或任何其他功能使用?

+1

我們需要看到更多的代碼。就像'seasons.runs'裏面有什麼。如果'abc'不在裏面,它不會像那樣工作。 –

+0

@Antonio Laguna - 增加了json以獲得更加清晰的效果 – Hacker

回答

1

ng-options在對象基礎上工作。

其中我們它用於跟蹤設置或選擇選項。

我已經修改了以下HTML爲我自己的purpsose。

<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選項,並設置在外部函數值。

這裏是plunker

0

看看本頁頂部提供的示例https://docs.angularjs.org/api/ng/directive/ngOptions,您可能需要確保您的$ scope.runnames變量包含'name'的定義。即

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

對我無效! – Hacker

+0

'abc'即使是您的選擇範圍內的有效選擇? – Tim

+0

這只是一個例子。我現在修改了我的代碼。 – Hacker