【问题标题】:Angular UI bootstrap: how to add first option to select?Angular UI bootstrap:如何添加第一个选项以进行选择?
【发布时间】:2016-02-06 21:03:02
【问题描述】:

我有以下选择架构:

首先:我有输入,它会过滤我的选择 Dropbox 结果

第二:在我的结果中总是应该是选项,当我点击它时,我想看到模态窗口(所以,即使我输入了一些文本,这个选项仍然必须在我的 Dropbox 中)

第三...n:默认选项

现在我有了这样的模板:

<ui-select ***mysecretoptions***>
  <ui-select-match ***mysecretoptions***>***mysecretoptions***</ui-select-match>

  <ui-select-choices***mysecretoptions***>
    <span ***mysecretoptions***></span>
  </ui-select-choices>
</ui-select>

而且效果很好,但是当我进行一些搜索时,第一个选项会隐藏...

有可能吗,怎么做?

只有当我输入/单击 ui-select 时才会显示第一个选项(因此它不会显示为选中或整个选择框的默认值)

【问题讨论】:

  • 一种可能的方法是破解 angular ui-select 库的 select.js 并在 uiSelectConfig 选项中添加一个按钮模板。

标签: javascript angularjs twitter-bootstrap angular-ui-bootstrap angular-ui


【解决方案1】:

是的,有可能,我每天都这样做,请检查以下内容:

<ui-select ng-model="view.provinceCode" title="Province">
    <ui-select-match placeholder="Select...">{{$select.selected.name}}</ui-select-match>
    <ui-select-choices repeat="x.code as x in view.provinces | filter: $select.search">
        <div ng-bind-html="x.name | highlight: $select.search"></div>
    </ui-select-choices>
</ui-select>

正如您在repeatline 中看到的那样,您可以使用对象数组的任何属性作为ng-model 的值,一旦您这样做了,您就可以手动设置所选项目。

// my controller (javascript)
view.provinceCode = 37;

这会将ui-select 设置为您在控制器中建立的项目。

如果不使用x.property as x 近似,如果将模型设置为FULL 对象,结果将是相同的:ui-select 的 selected 属性将是你想要的。

编辑:

我刚刚意识到您要求将数组的 first 元素放入,在您的情况下这更容易......

view.provinceCode = view.provinces[0].code;

或者,使用完整的对象...

view.selectedProvince = view.provinces[0];

【讨论】:

  • 第一个对象应该存在于任何组合中:无论有没有搜索。这是主要目标。顺便说一句:单击第一个对象将导致模式窗口打开
  • 第一个选项是:'create new item'
  • @brabertaser1992 我真的不明白你的意思,你要求选择选择的第一项,这就是我的回答,如果你想要一些额外的行为,你可以在里面做任何你喜欢的事情ng-change 属性,您也应该在问题中指定它...
  • "第二:在我的结果中总是应该是选项,当我点击它时,我想看到模态窗口(所以,即使我输入了一些文本,这个选项仍然必须在我的保管箱中)”所有内容都已指定...我没有要求选择第一项。请再读一遍问题
猜你喜欢
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 2012-06-03
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多