繁体   English   中英

如何为angular ui-select设置默认值

[英]how to set a default value for angular ui-select

题 :

如何将默认值设置为角度ui-select

从对象和对象获取的下拉值不具有默认值。

和ui-select应该在前端设置默认值。

例如:

下拉值如下

1 -all fruits 2 -apple 3 -banana 4-water melon

从2到4的值是从服务器发送的对象派生的。但是前端需要设置默认值,即1 - 所有水果

通过ui-select2参考下面的示例集如何在ui-select中迁移它?

<select ng-model="fID" class="select"  ui-select2 data-placeholder="select fruit">
            <option value="">All fruits</option>
            <option ng-repeat="f in frits value="{{f.fID}}">{{f.name}}</option>
        </select>

<ui-select theme="select2" ng-model="fruits.selected">
            <ui-select-match placeholder="select please" allow-clear="false">                    {{$select.selected.name}}
</ui-select-match>
            <ui-select-choices repeat="f in fruits | filter:$select.search">
                <div ng-bind-html="f.name | highlight: $select.search:'underline'"></div>
            </ui-select-choices>
        </ui-select>

http://plnkr.co/edit/a3KlK8dKH3wwiiksDSn2?p=preview https://github.com/angular-ui/ui-select链接:angular-ui / ui-select

你没有使用id或类似的东西作为选项值,所以ui-select比较对象地址以了解它是否被选中。

var p1 = { name: 'Adam',      email: 'adam@email.com',      age: 10 };
  $scope.person = {selected: p1};
  $scope.people = [
    p1,
    { name: 'Amalie',    email: 'amalie@email.com',    age: 12 },
    { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30 },
    { name: 'Samantha',  email: 'samantha@email.com',  age: 31 },
    { name: 'Estefanía', email: 'estefanía@email.com', age: 16 },
    { name: 'Natasha',   email: 'natasha@email.com',   age: 54 },
    { name: 'Nicole',    email: 'nicole@email.com',    age: 43 },
    { name: 'Adrian',    email: 'adrian@email.com',    age: 21 }
  ];

像这样更换plunker,你将有一个默认的选定值。

要在视图上设置默认值,您可以使用ng-init并将第一个对象设置为选中状态

我找到了这个工作示例: http//jsfiddle.net/NfPcH/28/

角度代码:

<a href="#" editable-select="user.status" e-ng-options="s.value as s.text for s in statuses">
    {{ showStatus() }}
  </a>

控制器:

app.controller('Ctrl', function($scope, $filter) {
  $scope.user = {
    status: 2
  }; 

  $scope.statuses = [
    {value: 1, text: 'status1'},
    {value: 2, text: 'status2'},
    {value: 3, text: 'status3'},
    {value: 4, text: 'status4'}
  ]; 

  $scope.showStatus = function() {
    var selected = $filter('filter')($scope.statuses, {value: $scope.user.status});
    return ($scope.user.status && selected.length) ? selected[0].text : 'Not set';
  };
});

在您的控制器中添加以下代码:

 $scope.fruits.selected = {name: 'All fruits'};

以上将默认选择值设置为下拉列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM