2016-03-02 49 views
0

工作我有一个很简单的“选择”元素使用角模型绑定到值,如下所示:角度选择模型不具有初始值

<select ng-model="data.value"> 
    <option ng-repeat="d in list" value="{{d.id}}">{{d.name}}</option> 
</select> 

运作良好的结合(I加2选择元件结合到同样的变种,当我改变其中一个第二个正确改变)。 我的问题是select元素在加载到变量的初始值时没有正确设置。

我的控制器的代码是:

app.controller('MainCtrl', function($scope) { 
    $scope.list = [{id:1,name:'aaa'}, 
       {id:2,name:'bbb'}, 
       {id:3,name:'ccc'}, 
       {id:4,name:'ddd'}, 
       {id:5,name:'eee'}]; 

    $scope.data = {value:2}; 
}); 

一个例子设定为this plunker

任何帮助将不胜感激。

+1

使用$ scope.data = {值: '2'}; –

回答

0

初始化您的模型

$scope.data = {value:'2'} 

您可以更详细地检查here

0

我有一个为你解决: -

可以使用NG-init初始化的第一个。 NG-模型可以从那里照顾检查以下Plunker为制定把

<!DOCTYPE html> 
<html ng-app="plunker"> 

    <head> 
    <meta charset="utf-8" /> 
    <title>AngularJS Plunker</title> 
    <script>document.write('<base href="' + document.location + '" />');</script> 
    <link rel="stylesheet" href="style.css" /> 
    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script> 
    <script src="app.js"></script> 
    </head> 

    <body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 

    <!-- first select: 
    <select ng-model="data.value"> 
    <option ng-repeat="d in list" value="{{d.id}}">{{d.name}}</option> 
    </select> --> 

    <br/> 

    First Select :- 

    <select ng-init="data.value = list[0]" 
     ng-model="data.value" 
     ng-options="d.name for d in list"> 
    </select> 

    <br/> 
    second select: 
    <select ng-init="data.value = list[0]" 
     ng-model="data.value" 
     ng-options="d.name for d in list"> 
    </select> 
    <!--<select ng-model="data.value">--> 
    <!-- <option ng-repeat="d in list" value="{{d.id}}">{{d.name}}</option>--> 
    <!--</select>--> 

    <br/> 
    selected value: {{data.value}} 
    </body> 

</html> 

http://plnkr.co/edit/IydWDWosdLo6aSumb1ic?p=preview

注: - 我只是更新了它在 Plunker或只是上面的替换你的代码!

0

我收到了你plunker与NG选项工作:

first select: 
<select ng-model="data.value" ng-options="d.id as d.name for d in list"> 
</select> 

<br/> 

second select: 
<select ng-model="data.value" ng-options="d.id as d.name for d in list"> 
</select>