2012-12-10 37 views
4

在HTML頁面中我有一個選擇像下面,Angularjs設置選定值

<select> 
    <option value="GMT-12:00">(GMT -12:00) Eniwetok, Kwajalein</option> 
    <option value="GMT-11:00">(GMT -11:00) Midway Island, Samoa</option> 
    <option value="GMT-10:00">(GMT -10:00) Hawaii</option> 
    <option value="GMT-9:00">(GMT -9:00) Alaska</option> 
    ... 
</select> 

然後我查詢了REST API,並得到一個人的數據一樣,

person : { 
    language : "en_US", 
    timezone : "GMT-9:00" 
    ... 
} 

問題: 如何在AngularJS應用程序中顯示此頁面時,我可以將「(GMT -9:00)阿拉斯加」設置爲選定的嗎?

+0

下面的問題是否正確?由於它有3個降價,我不確定... – trainoasis

回答

1

您可以使用ng-model屬性將API json響應綁定到您的select輸入。

鑑於你的HTML,我們得到這個選擇下拉列表,將綁定到person.timezone

<div ng-controller="MainController"> 
    <select ng-model="person.timezone"> 
     <option value="GMT-12:00">(GMT -12:00) Eniwetok, Kwajalein</option> 
     <option value="GMT-11:00">(GMT -11:00) Midway Island, Samoa</option> 
     <option value="GMT-10:00">(GMT -10:00) Hawaii</option> 
     <option value="GMT-9:00">(GMT -9:00) Alaska</option> 
    </select> 
    </div> 

現在你需要的控制器實際調用REST服務,並得到了人員目標:

function MainController($scope, $http) { 
    /* query rest api and retrive the person 
    this of course would be replaced with the url of your actual rest call */ 
    $http({method: 'GET', url: 'rest_api_response.json'}).success(function(data, status, headers, config) { 
    $scope.person = data; 
    // dont apply if were in digest 
    if(!$scope.$$phase) 
     $scope.$apply(); 
    }). 
    error(function(data, status, headers, config) { 
    console.log("error retriveing rest api response"); 
    }); 
} 

對於此示例中,我只是做了一個名爲"rest_api_response.json"文件,其中包含您的效應初探

{ 
"language" : "en_US", 
"timezone" : "GMT-9:00" 
} 

Heres a plunker with the sample contained

0

您的下拉菜單不在"Angular world"中。
你沒有綁定到它的模型,所以當你改變你的選擇什麼將真正發生在角度的世界。

因此,要麼:

1.更改你下拉的「角世界」的工作,並具模型綁定(然後輕鬆地執行通過分配你從服務器返回的值,你需要什麼樣的選擇值。)
繼承人一個不錯的reference

2.繼續使用純JS或像JQuery這樣的框架在非Angular世界中工作,並以不同的方式進行。