angularcliとtypescript 2.0を使用して、角度2で動作するPackeryを角度2で使用することはできません。 私はPackery 1.4.1とそのバージョンのtypescript定義をDefinitelyTypedから使用しています。角度2のパッカーを使用する
ng serveでプロジェクトを実行しているときに、OutlayerへのPackeryの参照が見つからないという問題があります。
は、具体的に以下の例外が原因それにスローされます。
以下TypeError: Cannot set property 'position' of undefined at Object.utils.extend (eval at webpackJsonp.82.module.exports
は、プロジェクトのために私のコードです。アンギュラcli.jsonから
スクリプトセクション:
"scripts": [
"../node_modules/packery/dist/packery.pkgd.js"],
私も依存JSファイルを追加しようとしているが、例外がスロー同じである:
"scripts": [
"../node_modules/packery/dist/packery.pkgd.js",
"../node_modules/get-size/get-size.js",
"../node_modules/outlayer/outlayer.js",
"../node_modules/ev-emitter/ev-emitter.js",
"../node_modules/fizzy-ui-utils/utils.js",
"../node_modules/desandro-matches-selector/matches-selector.js"
],
app.component.ts:
import { Component, ViewChild, AfterViewInit } from '@angular/core';
declare var Packery: any;
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit
{
@ViewChild('grid') grid;
private pckry: any;
constructor() {}
ngAfterViewInit(){
this.pckry = new Packery(this.grid, {
itemSelector: '.grid-item'});
}
}
app.component.html
<div #grid class="grid">
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
私は、パッカーを入力の有無にかかわらず実行する方法について助けが必要です(バニラjsは私にとっては大丈夫でしょう)。
グリッドを更新する必要はありませんか?もしそうなら、あなたはどのようにそれを達成しましたか? –
@JeremyThomas残念ながら、各タイルの位置をリセットすることなく、まだグリッドを更新することはできませんでした。私は実際に更新後にその位置にとどまるように、バックエンドの位置をドラッグして更新することを検討しています。 –
私は実際に、角を使って問題なく作業するためにPackeryを手に入れたことをあきらめました。 主な問題は、バックエンドからの新しいデータでグリッドを更新することでした。正しく動作するようには思えませんでした。 また、Angularを直接サポートしていないグリッドを使用すると、Angular統合の問題が多すぎるため、あまり意味がありません。 したがって、Dragulaを使用してグリッドを書き直しました。https://github.com/valor-software/ng2-dragula Dragulaは、私のユースケースでは「動作」しました。これは、列と調整された一般的なアイテム。 –