【问题标题】:Disable button if nothing is selected in ui-select如果在 ui-select 中未选择任何内容,则禁用按钮
【发布时间】:2015-10-08 21:03:51
【问题描述】:

我有这个代码来生成一个 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 没有选择任何内容,我想禁用一个按钮,但是写这个不起作用

ng-disabled="!work"

我该怎么做?

谢谢。

【问题讨论】:

  • work 代表什么?它当然不代表你的ng-model,即newTask.work
  • 我在问题中写错了。使用 !newTask.work 按钮始终处于禁用状态,如果您在 ui-select 中选择某些内容也是如此。同样使用 newTask.work.isEmpty() 它也不起作用。
  • plunkr 或 jsfiddle 会有所帮助:)

标签: angularjs ui-select


【解决方案1】:

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

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

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

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

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

它将向您显示绑定的 Angular 变量的原始值,因此您可以在您选择/取消选择 &lt;ui-select&gt; 控件中的项目时看到其值的变化。

希望这会有所帮助。

更新(看到 Plunkr 后):

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

  $scope.newTask =
  { 
      work: null
  };

...当您在下拉列表中选择一个项目时,您的按钮将启用。

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

【讨论】:

  • 这是 Plunk:plnkr.co/edit/iMkIIToSbdiOvpWuc8GB?p=preview
     始终为空。
  • PS:只有当我首先在输入文本中写一些东西时,才会填充
    。如果我改变选择,写一些东西然后再改变它什么都没有出现,但是如果我先写了一些东西然后我改变了选择,它就可以工作。我不知道为什么。
  • ... 因为您还没有创建“newTask”变量。请参阅我上面的评论。这就是您需要添加的全部内容。
  • 但我是意大利人!啊哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多