0

我正在尝试使用角度 UI 选择,但遇到了问题。当我的表单加载时,选项似乎正确填充,但它没有从我的模型中选择的值。例如,下面的屏幕截图显示了一个具有优先级 (2) 正常的项目,但正如您所见,当表单加载时它似乎是空的。

在此处输入图像描述

然后,如果我选择其中一个选项并保存它会尝试使用整个对象

{"text":"(2) Normal","value":"(2) Normal"} 

而不仅仅是值,但顶部仍然显示为空。

<ui-select ng-model="currentItem.PriorityValue" theme="bootstrap" style="min-width: 300px;" title="Choose a priority">
    <ui-select-match>{{$select.currentItem.PriorityValue}}</ui-select-match>
    <ui-select-choices repeat="option in (data.priority.options |  filter: $select.search) track by option.value">
        <span ng-bind="option.text"></span>
    </ui-select-choices>
</ui-select>

编辑:如果它有帮助,这就是我之前所做的工作,但现在我需要选择的过滤功能

<select class="form-control modal-input" id="PriorityValueInput" data-ng-options="option.value as option.text for option in data.priority.options" data-ng-model="currentItem.PriorityValue"></select>
4

2 回答 2

0

我试图在下面的 plunker 中做同样的事情。希望这会帮助你。

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

<ui-select ng-model="ctrl.country.selected" theme="selectize" ng-disabled="ctrl.disabled" style="width: 300px;" title="Choose a country">
<ui-select-match placeholder="Select ">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="country in ctrl.countries | filter: $select.search">
  <span ng-bind-html="country.name | highlight: $select.search"></span>
  <small ng-bind-html="country.code | highlight: $select.search"></small>
</ui-select-choices>

并在控制器中选择页面加载选项

me.country.selected = {"name":"Albania","code":"AL"};
于 2016-06-10T17:30:25.610 回答
0

我也遇到了和你一样的问题,所以我也想分享我的解决方案,所以我认为这是你的数据结构是lst。我了解您仅存储或从数据库中获取值,因此我添加了过滤器以根据值(2) Normal从lst获取对象并将其分配给option.PriorityValue

  var lst = [
    {"text":"(1) High","value":"(1) High"}, 
    {"text":"(2) Normal","value":"(2) Normal"}, 
    {"text":"(3) Low","value":"(3) Low"} 
  ];
  $scope.data = {
      priority: {
        options: lst
      }
  };
  //You can change the value '(2) Normal'
  var newTemp = $filter("filter")(lst, {"value":'(2) Normal'});
  $scope.option = {
     PriorityValue: newTemp[0]
  }

这是标记,如果您只想在选择下拉列表时获取值,请使用 option.PriorityValue.value

  <ui-select ng-model="option.PriorityValue" theme="selectize" style="width: 300px;" title="Choose a priority">
      <ui-select-match placeholder="Select priority in the list...">{{$select.selected.value}}</ui-select-match>
      <ui-select-choices repeat="option in (data.priority.options |  filter: $select.search) track by option.value">
          <span ng-bind-html="option.text | highlight: $select.search"></span>
          <small ng-bind-html="option.value | highlight: $select.search"></small>
      </ui-select-choices>
  </ui-select>

这是我为您所做的:

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

对不起我的英语不好。

于 2016-06-10T18:45:46.543 回答