私はaurelia-interactjs pluginを試しています。すべてのインストール手順に従って、新しいaurelia cliプロジェクトにインストールしました。私はinteractjs demoのドラッグセクションのコードを追加しました。ブラウザのコンソールは、その相互作用を述べる次のエラーが関数ではありません表示されます。Aurelia CLIを使用してaurelia-interactjsプラグインを動作させることができません
Unhandled rejection TypeError: interact is not a function. (In 'interact(this.element)', 'interact' is undefined)
[email protected]://localhost:9005/node_modules/aurelia-interactjs/dist/amd/interact-draggable.js:18:21
ここに私のコードです:
app.html
<template>
<div id="drag-1" interact-draggable.bind="interactjsOptions">
<p> You can drag one element </p>
</div>
<div id="drag-2" interact-draggable.bind="interactjsOptions">
<p> with each pointer </p>
</div>
</template>
は
をapp.jsexport class App {
constructor() {
this.interactjsOptions = {
// enable inertial throwing
inertia: true,
// keep the element within the area of it's parent
restrict: {
restriction: "parent",
endOnly: true,
elementRect: {
top: 0,
left: 0,
bottom: 1,
right: 1
}
},
// enable autoScroll
autoScroll: true,
// call this function on every dragmove event
onmove: dragMoveListener,
// call this function on every dragend event
onend: function(event) {
var textEl = event.target.querySelector('p');
textEl && (textEl.textContent =
'moved a distance of ' +
(Math.sqrt(event.dx * event.dx +
event.dy * event.dy) | 0) + 'px');
}
};
}
}
function dragMoveListener(event) {
var target = event.target,
// keep the dragged position in the data-x/data-y attributes
x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx,
y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
// translate the element
target.style.webkitTransform =
target.style.transform =
'translate(' + x + 'px, ' + y + 'px)';
// update the posiion attributes
target.setAttribute('data-x', x);
target.setAttribute('data-y', y);
}
タイスクリプトの定義と実際のコードとの間に不一致があるようです。定義ではインポートを "interact.js"と指定し、コードでは実際には "interact"します。 JSPMはこれを、私が作成したマッピングで処理します。 require/CLIの場合、 "interact.js"と "interact"の間のこのマッピングは作成されません。それを調べてパッケージを更新します。 –
@Erikこれをさらに調べると、nodejs 5.5を使用していることがわかりました。私はv4.xのインストールを覚えているので、どうしたのか分かりません。とにかく、私は最新のノードv6にアップグレードし、エラーはなくなりました。しかし、ドラッグしようとすると、何も起こりません(dragMoveListener関数は決して呼び出されません)。 –
@Erikドラッグしても動作しないか、まだ解決しなければならないバグがあると思うかと思いますが、私のコードで何かが見えますか(私はinteractjsにはまったく新しいです)? –