2016-03-04 80 views
0

我正試圖在Angular的下拉/選擇框中預選一個值。它應該非常簡單,但它不起作用。在Angular中的下拉列表中預選值

這是我的標記:

   <select name="type" ng-model="ctrl.typeId" required> 
        <option value="1">Type 1</option> 
        <option value="2">Type 2</option> 
        <option value="3">Type 3</option> 
        <option value="4">Type 4</option> 
       </select> 

在我的控制,我只是有:

vm.typeId = 2; 

但它不會選擇任何內容。相反,當在下拉元素上使用檢查器時,我看到一個新的<option>,其值爲"? number:2 ?"

我在想什麼?

+0

嘗試此vm.typeId = '2'; –

回答

2

不需要在CTRL控制器

$scope.typeId="2" 

,用於選擇選項與值2

1

var app = angular.module("app",[]); 
 
app.controller("ctrl" , function($scope){ 
 
    $scope.typeId ='2'; 
 
    
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <select name="type" ng-model="typeId" required> 
 
        <option value="1">Type 1</option> 
 
        <option value="2">Type 2</option> 
 
        <option value="3">Type 3</option> 
 
        <option value="4">Type 4</option> 
 
    </select> 
 
</div>

1

所以如果你想設置的東西在下拉菜單中,你應該用一個字符串值不是數值初始化它的模型選擇下拉會給你一個字符串。

嘗試此 - vm.typeId = "2";

+0

啊。那麼當值從另一個值作爲int返回時,我該怎麼辦?以某種方式轉換它,或? – brother

+0

是將其轉換爲字符串,然後將其初始化爲下拉模型。 xyz.toString() –