绑定Angularjs使用item的属性选择要建模的项目

时间:2015-02-13 17:06:54

标签: javascript angularjs

我有一个如下集合:

$scope.TeamType = [
    {
        "name": "Beginner",
        "value": 0
    },
    {
        "name": "Novice",
        "value": 1
    },
    {
        "name": "Expert",
        "value": 2
    },
    {
        "name": "Masters",
        "value": 3
    }];

我的控制器中也有一个变量:

$scope.SelectedTeamType = 0;

我正在尝试在以下声明中使用这些项目

<select ng-model="SelectedTeamType" ng-options="v as v.name for v in TeamType track by v.value"></select>

我希望select与init一起使用模型中的相应值,并在select更改时将值保存到模型中。我不确定为什么模型SelectedTeamType将整个对象存储到它而不是v.value以及它为什么不用初学者初始化。

1 个答案:

答案 0 :(得分:1)

根据评论我需要将$ scope.SelectedTeamType保持为整数值

使用

<select 
    ng-model="SelectedTeamType" 
    ng-options="v.value as v.name for v in TeamType"
 ></select>

DEMO

由于您在ngOptions中提供的表达式而存储对象。

您需要绑定对象,使用

$scope.SelectedTeamType = $scope.TeamType[0];

更好

$scope.SelectedTeamType = $scope.TeamType.filter(function(t) {
    return t.value == 0;
});