ng-options不适用于对象

时间:2014-06-30 06:17:25

标签: javascript angularjs ng-options

我确定这是一个非常好的解释,但我似乎无法使ng-options与我的模型对象一起工作。基本上我想让我的选择显示一个国家列表。选项值是国家/地区代码,标签是国家/地区名称:

HTML

<div ng-app="demoApp">
    <div ng-controller="UserInfoCtrl">
        <h1>User Info</h1>

        <label>Email</label>
        <input type="text" ng-model="user.email" />
        <br />

        <label>Country</label>
        <select ng-model="user.country" ng-options="code as name (code, name) in countriesByCode">
        </select>

        <pre>{{ user | json }}</pre>
    </div>
</div>

的JavaScript

var demoApp = angular.module('demoApp', []);

demoApp.controller("UserInfoCtrl", function($scope) {
    $scope.user = { };

    $scope.countriesByCode = {
        'AF' : 'Afghanistan',
        'CA' : 'Canada',
        'RU' : 'Russia'
    };
});

这里是jsfiddle

2 个答案:

答案 0 :(得分:1)

你的陈述中缺少'for'

code as name for (code, name) in countriesByCode

以下是更正的小提琴:http://jsfiddle.net/8XJX4/2/

希望这会有所帮助。

答案 1 :(得分:0)

对不起,这是我表达的一个愚蠢的错误。而不是

代码作为countriesByCode

中的名称(代码,名称)

应该是

代码作为countriesByCode

中(代码,名称)的名称