首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular Material:让某些芯片在md-chip中有条件地禁用?

Angular Material:让某些芯片在md-chip中有条件地禁用?
EN

Stack Overflow用户
提问于 2016-06-21 19:00:54
回答 1查看 2.6K关注 0票数 4

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

代码语言:javascript
复制
<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>

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

EN

回答 1

Stack Overflow用户

发布于 2017-01-17 14:01:11

您可以使用md-chip-remove指令添加您自己的移除芯片按钮,并在芯片级上设置禁用条件。如下例所示:

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
$scope.onRemovedChip = function(chip) {
    if (chip.notEditable) {
        $scope.FruitNames.push(chip);
    }
};

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37942653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档