2016-10-01 116 views
1

這是我的HTML:AngularJs NG選項(柯值)NG-模型= 「選擇」 不工作

<select ng-options="value.name for (key, value) in countries track by key" ng-model="selected" > 
</select> 

這是對象即時試圖去努力:

$scope.countries = { 
    "AFG":{"name":"Afghanistan"}, 
    "ALB":{"name":"Albania"} 
}; 
$scope.countriesKeys = Object.keys($scope.countries); 
$scope.selected = ????; 

我的問題是,我無法設法使ng-model工作,對象的結構使它很難..(不能更改對象)。

最後我的目的是使<select>與第一個選定的選項"ALB":{"name":"Albania"},並使其動態,所以當我按其他選項,使$scope.selected更改。

+0

感謝那些實際上幫助, 但$範圍。選擇現在 選定=對象{名稱:「阿富汗」},我想也有鑰匙(「AFG」) – Alex

回答

1

你可以試試下面一行:

$scope.selected={"name":"Albania"} 
+0

嗨, 首先我刪除了「項目爲...」和動態我的$範圍.selected現在選擇=對象{名稱:「阿富汗」} ,我也想要鑰匙(AFG)它真的很重要 – Alex

+0

(DOM輸出) (使用你的方式)所選的仍然不起作用 – Alex

+0

使用「鍵爲(鍵,值)在國家跟蹤鍵」 和設置$ scope.selected ='AFG' –

0

var app = angular.module("myApp", []); 
 

 
//controller 
 
app.controller('MainCtrl', function($scope) { 
 
    $scope.countries = { 
 
     "AFG":{"name":"Afghanistan"}, 
 
     "ALB":{"name":"Albania"}}; 
 
     $scope.countriesKeys=Object.keys($scope.countries); 
 
     $scope.selected="ALB"; 
 
    
 
     $scope.changeSelected = function(newSelected){ 
 
      $scope.selected=newSelected; 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="myApp"> 
 

 
    <div class="div1" ng-controller="MainCtrl"> 
 
    {{selected}} 
 
    <select ng-options="key as value.name for (key, value) in countries" ng-change="changeSelected(selected)" ng-model="selected"></select> 
 
    </div> 
 

 
</body>

0
var getKeyByValue = function(value,array1) { 
for(var prop in array1) { 
    if(array1.hasOwnProperty(prop)) { 
     if(array1[ prop ] === value) 
      return prop; 
    } 
} 

我加入這個功能,我的控制器

getKeyByValue($scope.selected,$scope.countries) 

現在我已經從<option> 感謝每一個都價值,關鍵誰試圖幫助 大多是我的問題是,我補充說:「項目作爲value.name ......」