AngularJS:如何在ng-show / ng-hide中使用ngclipboard?

时间:2019-06-11 13:52:34

标签: javascript angularjs

我正在实现一个功能,当我单击按钮时,某些文本将被复制。我不想显示文本,也不想弄乱我的布局。

按照本文的指导,我试图使用ngclipboardng-hide

https://medium.com/@kris.stange2015/use-ngclipboard-with-an-angular-ng-repeat-directive-398d4eaf2c83

我的代码的工作原理与帖子类似

<button type="button"
            class="button button--info"
            ng-if="!some_iter.show"
            ngclipboard
            data-clipboard-target="#someTag{{$index}}"
            ngclipboard-success="ctrl.onClipboardSuccess(e)"
            ngclipboard-error="ctrl.onClipboardError(e)">Copy Invite Link</button>
<input class='input-hide' id="someTag{{$index}}" ng-value="some_iter.url"></input>

我遇到了他或她提到的确切问题,即隐藏input时无法捕获该值。我尝试了工作方法,但弄乱了我的布局。我的问题:

  1. 如果我隐藏值,为什么它不起作用?据我所知,ng-hide仅适用于CSS,为什么display: nonevisibility: none不起作用?该组件仍然存在,对吧?

  2. 如果使用opacity: 0,如何确保我的布局不被弄乱?基本上,我如何没有一个怪异的空白点,用户仍然可以以某种方式拖动和复制文本(这不是很关键,但我不喜欢它)

1 个答案:

答案 0 :(得分:0)

想通了。无需处理输入字段,我们可以使用

将数据直接注入ngclipboard中。
<button type="button"
            class="button button--info"
            ng-if="!some_iter.show"
            ngclipboard
            data-clipboard-text="{{some_iter.url}}"
            ngclipboard-success="ctrl.onClipboardSuccess(e)"
            ngclipboard-error="ctrl.onClipboardError(e)">Copy Invite Link</button>

我们可以删除

<input class='input-hide' id="someTag{{$index}}" ng-value="some_iter.url"></input>