1

シンプルな Meteor クリップボード アプリで zclip を使用できないようです: http://commandc.meteor.com

meteor が jquery、zclip、およびコピー スクリプトをロードする方法に関して何かが欠けていると思ったので、すべてを html に移動し、外部ソースを使用しました。それでも、コピーは機能しません。ここで動作する非常によく似たコード: http://jsbin.com/uladis/7/edit

PS: すべての p タグではなく、正しい要素だけのテキストをコピーするという別の問題があることはわかっています。それについてはまだ心配していません。

編集: 以下の Akshat の方法を使用すると、コピーの各インスタンスに対してこの例外が発生します。

Exception from Meteor._atFlush: TypeError: Object [object Object] has no method 'zclip' at Object.Template.copy.rendered (http://localhost:3000/command-c.coffee.js?78eccd42fde3d566da961e73c1ab9f4ad83a4e26:18:35) at Spark.createLandmark.rendered (http://localhost:3000/packages/templating/deftemplate.js?91fdd4353cca922f7a59ff593d000211c2857c84:125:44) at http://localhost:3000/packages/spark/spark.js?c202b31550c71828e583606c7a5e233ae9ca50e9:386:32 at Array.forEach (native) at Function._.each._.forEach (http://localhost:3000/packages/underscore/underscore.js?47479149fe12fc56685a9de90c5a9903390cb451:79:11) at http://localhost:3000/packages/spark/spark.js?c202b31550c71828e583606c7a5e233ae9ca50e9:384:7 at http://localhost:3000/packages/deps/deps-utils.js?f3fceedcb1921afe2b17e4dbd9d4c007f409eebb:106:13 at http://localhost:3000/packages/deps/deps.js?1df0a05d3ec8fd21f591cfc485e7b03d2e2b6a01:71:15 at Array.forEach (native) at Function._.each._.forEach (http://localhost:3000/packages/underscore/underscore.js?47479149fe12fc56685a9de90c5a9903390cb451:79:11)

4

1 に答える 1

1

私はZclipを使用したことがないので、他の正しい要素の問題を含めて役立つことを願っています:

使用するとき <.. id='..'は、それぞれが一意であることを確認する必要があります。そうしないと、DOM が壊れます。代わりに、次の<p id="copy">ようなものを使用します。<p id="{{_id}}" class="copy">

テンプレートデータにアクセスしようとしていますthis.data

Template.copy.rendered = function() {
       $('#' + this.data._id).zclip({
           path:"http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
           copy:this.data.name
       });
    }
}

したがって、各コピー クリックはこのスタイルのテンプレートを使用して機能します

HTML:

上記のレンダリングされた関数が独自のデータコンテキストを取得できるように、コピーが独自のテンプレートになるようにリストを分割しました

<template name="list">
    {{#each copies}}
       {{>copy}}
    {{/each}
</template>

<template name="copy">
    <p id="{{_id}}" class="copy">{{name}}</p>
</template>

編集

1) meteor パッケージを使用する代わりに Meteor を使用して JQuery を追加し<script>ます。プロジェクト ディレクトリに JQuery を追加します。

meteor add jquery

2) http://www.steamdev.com/zclip/js/jquery.zclip.min.jsのファイルをプロジェクト内のフォルダーに追加します。client/lib

エラーは、zclip がまだロードされていないために発生します。

于 2013-03-09T22:19:24.737 に答える