如何在角度设置ui-select中设置默认值?

时间:2016-12-01 09:39:42

标签: angularjs ui-select

我使用ui-select元素在Angular中编写了一个小程序。这是html代码:

  <ui-select ng-model="test.selectedContract">
    <ui-select-match >
      {{$select.selected.name}} - {{$select.selected.value}} ---- {{$select.selected.id.id}} *** {{$select.selected.policy.info.name }}    
    </ui-select-match>

    <ui-select-choices group-by="groupByLetter" 
    repeat="contract in (contracts |
    orSearchFilter: {id.id: $select.search, policy.info.name : $select.search} |
    orderBy: 'name') track by contract.name">
          {{contract.name}} - {{contract.value}} ---- {{contract.id.id}} *** {{contract.policy.info.name }}
    </ui-select-choices>
  </ui-select>

这是我的合约对象的结构:

    $scope.contracts = [{
      name: "contract1.00",
      value: 10,
      id: {
        id: 8000,
        code: 2
      },
      policy: {
        info: {
          name: "test1",
          country: "test"
        }
      }
    }, //other contract objects

最后,有我的plunker代码:http://plnkr.co/edit/PigjGCj5ukxscJC7Wl97?p=preview

问题是我想将&#34; All&#34; 显示为默认值(如果没有选择),而我的plunker中的默认值为:&#34; - ---- ***&#34;

请帮我设置这个默认值吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在控制器中定义一种toString函数,并将其结果放在ui-select标记中,而不是硬代码破折号和星号。如果value为null,则应返回“All”

答案 1 :(得分:0)

只需设置

即可
   $scope.test.selectedContract = {
      name: "all",
      value: 10,
      id: {
        id: 8000,
        code: 2
      },
      policy: {
        info: {
          name: "test1",
          country: "test"
        }
      }
    } 

<强> DEMO