【问题标题】:Angularjs dropdown Options to show current selected itemAngularjs下拉选项显示当前选定的项目
【发布时间】:2014-11-24 22:43:19
【问题描述】:

我想在这里完成的是当用户进入应用程序时 selectedLocal 已经设置为 ID 184 和 Name A 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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    或者你可以这样做:

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

    $scope.selectedLocal = 184;

    根据上下文,一种解决方案可能优于另一种解决方案。

    【讨论】:

    • 感谢您的解释,我是 angularjs 的新手,但这是一个了不起的库。我以前用过knowckoutjs,我更喜欢这个:) 接受答案。
    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2016-05-10
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多