javascript 复制到幼兰柱剪贴板

iqxoj9l9  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(199)

我有一个问题,如果其他人在这种情况下,也许他们有一个解决方案,为Laravel兰花我试图使一个复制到剪贴板按钮的列名称与clipboard.js.我不知道如何使用它与Laravel兰花的其他项目,这是好的。
我的布局看起来像这样:

...
protected function columns(): array
    {
        return [
            TD::make('name', 'Name')
                ->render(function ($item) {
                    return
                        Group::make([
                            Link::make($item->name)->route('platform.item.show', $item),
                            Button::make('myBtn')->id('#myBtn')
                        ]);
                })->sort(),
    ....

但点击按钮后,我只得到一个错误:

TypeError
Argument 1 passed to Orchid\Screen\Screen::callMethod() must be of the type string, null given, called in /Volumes/T5/www/inventory-manager-laravel/vendor/orchid/platform/src/Screen/Screen.php on line 179

我想要的是在我的script.js中有一个函数,它可以监听这个id,然后使用剪贴板js,有没有更好的方法来实现我的目标我做错了什么?
先谢了

piv4azn7

piv4azn71#

Jaba,据我理解,按钮必须有一个方法
Button::make('myBtn')->id('#myBtn')->method('foo').文档
method('methodName')-单击时,表单将发送到当前屏幕中的指定方法
因此,您可以使用Link::make('myBtn')->id('#myBtn')并使用->class('foo-class')对其进行样式设置。Link::make('myBtn')->class('btn btn-primary')->id('#myBtn') ;

f8rj6qna

f8rj6qna2#

所以我想不出一个好的出路,现在我做了一个快速和肮脏的解决方案,这是现在罚款,但不是它应该的方式:

TD::make( 'name', 'Name')
                    ->render(function ($item) {
                        return Group::make([
                            $item->name,
                            Link::make()
                                ->route('platform.item.show', $item)
                                ->icon('action-redo')
                                ->id('myBtn')
                                ->type(Color::INFO()),
                        ])->autoWidth();
                    }),

我返回字符串形式的名称,这样用户就可以复制它并添加一个按钮来转到实际页面本身。
对于什么我试图得到实际的副本到剪贴板是
1.我在下面的同一个类中添加了
(我无法复制我的代码而不丢失格式化抱歉的图像)

在这列中我是这样构建的:

TD::make( 'name', 'Name')
                ->render(function ($item) {
                    $value = $item->name;
                    $button = '<button id="myBtn" class="btn btn-secondary" data-clipboard-text="'.$value.'">Copy</button>';
                    return Group::make([
                        $button,
                        $item->name,
                    ])->autoWidth();
                }),

我也尝试现在获得的clipboardiderjs与cdn,而不是安装它没有成功
第二种方法是像Multi_Pony建议的那样使用jqeury,但只看到第一个元素,并使用以下方法:

$("#myBtn").click(function(){
    alert("The paragraph was clicked.");
});

相关问题