【问题标题】:Angular Material: make certain chips disable conditionally in md-chips?Angular Material:使某些芯片在 md-chips 中有条件地禁用?
【发布时间】:2016-06-21 11:00:53
【问题描述】:

我正在使用 md-chips 指令来生成芯片。但是我希望有条件地禁用某些芯片,同时保持其他芯片可编辑。但根据文档,我们要么禁用所有芯片,要么不禁用。

<md-chips ng-model="FruitNames" name="fruitName" readonly="$chip.notEditable == 'true'" md-max-chips="5">
    <md-chip-template>
      <strong>{{$chip}}</strong>
      <em>(fruit)</em>
    </md-chip-template>
  </md-chips>

有没有办法让芯片有条件地可编辑/不可编辑?

【问题讨论】:

  • 问题是什么?
  • 这似乎不可能在每个芯片的基础上。
  • @ScottHunter 我想在某些情况下禁用一些芯片。

标签: angularjs angular-material md-chip


【解决方案1】:

您可以使用md-chip-remove 指令添加您自己的移除芯片按钮,并在芯片级别设置禁用条件。 请看下面的例子:

<md-chips ng-model="FruitNames" name="fruitName" md-max-chips="5" md-on-remove="onRemovedChip($chip)">
    <button
        ng-if="!$chip.notEditable"
        class="md-chip-remove ng-scope" 
        md-chip-remove
        type="button"
        aria-hidden="true" tabindex="-1">
        <md-icon md-svg-icon="md-close"></md-icon>
        <span class="md-visually-hidden ng-binding">Remove</span>
    </button>
    <md-chip-template>
        <strong>{{$chip}}</strong>
        <em>(fruit)</em>
    </md-chip-template>
</md-chips>

为了禁止使用退格删除标签,您还应该将此方法添加到您的控制器:

$scope.onRemovedChip = function(chip) {
    if (chip.notEditable) {
        $scope.FruitNames.push(chip);
    }
};

【讨论】:

  • 是的,@JagajitPrusty,你是对的,我把你的一些初始代码留在那里,我的错。我已经更新了sn-p。它将只允许删除那些没有将 notEditable 属性设置为true 的芯片。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多