5

我有一个引导模式,在其中,我有一个用于标记的 ui-select。这是我的例子:

<div class="modal modal-invite">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <ui-select multiple tagging tagging-label="" ng-model="email_list" theme="bootstrap" ng-disabled="disabled" on-select="" on-remove=""  title="Insert your friends email here." >
          <ui-select-match placeholder="Your friends email here...">{{$item}}</ui-select-match>
          <ui-select-choices repeat="email in email_list | filter:$select.search">
            {{email}}
          </ui-select-choices>
        </ui-select>
      </div>
      <div class="modal-footer">
        <button class="btn btn-success">Invite</button>
      </div>
    </div>
  </div>
</div>

我的问题是:当我打开模态框时$('modal-invite').modal('show'),占位符(和可点击区域)的大小为 10 像素,如下所示:

10px 大小的占位符

谷歌浏览器检查器

单击它后,它会获得正确的宽度。
当模式打开时,如何使 ui-select 刷新它的大小?

4

2 回答 2

2

最后我解决了检查 ui-select 源的问题。
似乎 ui-select 使用$watch父宽度上的 a 重新计算输入大小。

所以,为了刷新它,我这样做了:

$('.modal-invite').modal('show');
$scope.$apply();
于 2015-06-12T07:35:17.547 回答
0

我有类似的问题。

我知道更改源文件不是一个好习惯,最好从我自己的代码中以某种方式定位它 - 但现在我通过在源代码中注释掉将输入字段设置为 10px 渲染时的一行来修复它标签。

在源 select.js 文件的第 831 行,注释掉:ctrl.searchInput.css('width', '10px');

于 2017-03-24T14:35:55.750 回答