Angularjs下拉选项显示当前所选项目

时间:2014-11-24 14:35:41

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat angular-ui

我想在这里完成的是当用户进入应用程序时,selectedLocal已经设置为ID 184并命名为Name而不是默认名称。

感谢任何帮助。

我有以下脚本:

 function MyCtrl($scope) {
        $scope.User = [{
            ID: 109,
            Name: 'A Name'
        }, {
            ID: 161,
            Name: 'B Name'
        }, {
            ID: 184,
            Name: 'C Name'
        }];

        $scope.selectedLocal = [{ID: 184,Name: 'A Name'}]

    }

以及以下html:

<div ng-app ng-controller="MyCtrl">
    <div>{{selectedLocal}}</div>
    <select ng-model="selectedLocal" ng-options="item.Name for item in User" ng-change="localSelectChange()">
        <option value="">Default</option>
    </select>
</div>

这里是js小提琴LINK

感谢

1 个答案:

答案 0 :(得分:3)

您必须了解ng-options通过引用将选项值与ng-model进行比较。这意味着在某些时候有一个 比较$scope.User[i] === $scope.selectedLocal的循环,其中i是介于0和$scope.User.length之间的值。

因此,您需要使用$scope.selectedLocal的引用初始化$scope.User。 在您的情况下,$scope.selectedLocal = $scope.User[2];

或者你可以这样做:

ng-options="item.ID as item.Name for item in User"

$scope.selectedLocal = 184;

根据具体情况,一种解决方案可能优先于另一种解决方案。