角度选择。添加元素并自动选择它

时间:2014-02-03 13:24:29

标签: javascript angularjs

看看前。 jsfiddle example

HTML

<div ng-app="app" ng-controller="mCtrl">
    <select size="20" ng-model="selectedType" ng-init="selectedType=types[0]" 
    ng-options="type.name for type in types">

    </select>
    <button ng-click="addElem()">add elem in array</button>
</div>

控制器

$scope.types = [ my Array of objects ];

$scope.addElem = function() {
    element = {
        "id": 999,
        "name": "xxx"
    };
    $scope.types.push(element);
}

我想在ng-options数组中添加元素,并在选择Box中自动选择模型更改。 我试过了

$scope.selectedType = $scope.types[$scope.types.lenght - 1] 

,但它不起作用。

2 个答案:

答案 0 :(得分:0)

您拼错了length

这是有效的解决方案:

app = angular.module('app', []);

app.controller('mCtrl', function($scope) {
    $scope.types = [
    {
        "id": 0,
        "name": "Zaj"
    },
    {
        "id": 1,
        "name": "Emoltra"
    },
    {
        "id": 2,
        "name": "Malathion"
    },
    {
        "id": 3,
        "name": "Pyramax"
    },
    {
        "id": 4,
        "name": "Boink"
    },
    {
        "id": 5,
        "name": "Savvy"
    },
    {
        "id": 6,
        "name": "Accruex"
    },
    {
        "id": 7,
        "name": "Zappix"
    }
];
    $scope.addElem = function() {
        element = {
            "id": 7,
            "name": "Zappix"
        };
        $scope.types.push(element);
        $scope.selectedType = $scope.types[$scope.types.length - 1];

    }


})

DEMO

答案 1 :(得分:0)

在您的代码中,有拼写错误的拼写错误length

$scope.selectedType = $scope.types[$scope.types.length- 1]

DEMO

您可以使用$scope.selectedType = element

进行设置
$scope.addElem = function () {
    element = {
        "id": $scope.types.length + 1,
            "name": "Zappix" + $scope.types.length + 1
    };
    $scope.types.push(element);
    $scope.selectedType = element;
}

DEMO