如果在 ui-select 中没有 selected,则禁用按钮

Disable button if nothing is selected in ui-select

我有这段代码可以生成 ui-select:

<ui-select ng-model="newTask.work" theme="select2" class="form-control" title="Scegli un lavoro">
    <ui-select-match placeholder="Scegli un lavoro">{{$select.selected.label}}</ui-select-match>
        <ui-select-choices repeat="item in lavori | filter: $select.search">
                              <div ng-bind-html="item.label | highlight: $select.search"></div>
        </ui-select-choices>
</ui-select>

如果这个 ui-select 什么都没有 select,我想禁用一个按钮,但是写这个不起作用

ng-disabled="!work"

我该怎么做?

谢谢。

正如其他人所说,Plunkr 会有所帮助。

出于兴趣,这有什么不同吗:

ng-disabled="!newTask.work || newTask.work.length == 0"

另一个提示:在开发过程中,当您遇到这样的问题时,值得将其贴在您的网页上:

<pre>{{ newTask.work | json }}</pre>

它将向您显示绑定的 Angular 变量的原始值,因此您可以在 <ui-select> 控件中的 select/unselect 项目中看到它的值变化。

希望对您有所帮助。

更新(看到 Plunkr 后):

如果您将以下行添加到您的 script.js,您会看到我建议的 pre 会在您的下拉列表中显示您 select 的值,并且从在那里,您可以设置 ng-disabled 标志:

  $scope.newTask =
  { 
      work: null
  };

...当您 select 下拉列表中的项目时,您的按钮将启用。

(这就是我推荐 pre 想法的原因。它在您的 Plunkr 中什么也没有显示,即使在 select 一个项目之后,立即显示您的 Angular 变量是' t 绑定到 select,或者不存在。)