在html页面中,我有如下所示的选择,
<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并获得一个person数据,比如,
person : {
language : "en_US",
timezone : "GMT-9:00"
...
}问:在AngularJS应用程序中显示此页面时,如何将“(格林尼治时间-9:00)阿拉斯加”设置为选定的页面?
发布于 2014-08-16 23:11:40
您可以使用ng-model属性将API响应绑定到select输入。
考虑到您的HTML,我们会得到这个select下拉列表,它将绑定到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服务并获取person对象:
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"
}这是一个带有样品的柱塞
发布于 2014-08-16 23:20:43
您的下拉列表不在"Angular world"中。
您没有绑定到它的模型,所以当您更改您的选择时,,不会真正发生在角度世界中。
因此,要么是:
1.使用模型绑定更改您的下拉到“角世界”中的工作状态(然后通过将从服务器返回的值作为选定的值来轻松地执行所需的操作)。
这是一个不错的参考文献。
2.继续使用纯JS或像JQuery这样的框架在非角度世界中工作,并以不同的方式进行工作。
https://stackoverflow.com/questions/13796732
复制相似问题