Ng-lazyload-image: 既知のネイティブプロパティではないため、「lazyload」にバインドできません

作成日 2016年09月09日  ·  5コメント  ·  ソース: tjoskar/ng-lazyload-image

既存のIonic2プロジェクト(2.0.0-beta.11、Angular 2.0.0-rc.4を使用)を実行しています。 インストールしてセットアップしましたが、次のエラーが発生し続けます(エラーは実行時に発生します。コンパイル時に問題はありません)

image

私が取った手順:

Npmを実行しました:
$ npm install ng2-lazyload-image --save

コンポーネントにインポート:
import { LazyLoadImageDirective } from 'ng2-lazyload-image';

ディレクティブの設定:
directives: [ LazyLoadImageDirective ]

変数とデフォルトを設定します。

export class PostComponent {
defaultImage: any = 'build/assets/preloader.gif';
offset = 100;
@Input() feedImage: string = 'build/assets/blank-default-feed-bg.png';
}

私のテンプレートでは:
<img [src]="defaultImage" [lazyload]="feedImage" [offset]="offset" class="feed-image">

見落としているものがあるかもしれませんが、それが何なのかわからないようです。

最も参考になるコメント

タイプミスをしました。
[lazyload]ではなく[lazyLoad]です

乾杯 :)

全てのコメント5件

こんにちは、

問題を再現できません。 どのバージョンのng2-lazyload-imageを使用していますか? あなたのプロジェクトはオープンソースなので、私はそれを見ることができますか?

私が取った手順:

$ npm install -g ionic<strong i="8">@beta</strong>
$ ionic --version
2.0.0-beta.37
$ ionic start ionic-lazy-load-images --v2
$ cd ionic-lazy-load-images
$ npm install [email protected] --save
$ ionic serve

コードを更新しました:

`app / pages / home / home.html:

<ion-header>
  <ion-navbar>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding class="home" #container>
  <h2>Welcome to Ionic!</h2>
  <p>
    This starter project comes with simple tabs-based layout for apps
    that are going to primarily use a Tabbed UI.
  </p>
  <p style="height: 1000px;">
    Take a look at the <code>app/</code> directory to add or change tabs,
    update any existing page or create new pages.
  </p>
  <img
    style="height: 1099px;"
    [src]="defaultImage"
    [lazyLoad]="image"
    [offset]="offset"
    [scrollTarget]="container._scroll._el">
</ion-content>

`app / pages / home / home.ts:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { LazyLoadImageDirective } from 'ng2-lazyload-image';

@Component({
  templateUrl: 'build/pages/home/home.html',
  directives: [ LazyLoadImageDirective ]
})
export class HomePage {
  defaultImage = 'https://www.placecage.com/1000/1000';
  image = 'https://hd.unsplash.com/photo-1441765425173-8fd330fb4a02';
  offset = 100;

  constructor(private navCtrl: NavController) {
  }
}

そしてそれはうまくいきます:)

ただし、ionicは(デフォルトで)タブを使用し、スクロールコンテナにdisplay: noneを追加しているため、画像が最初にビューポートにあるかどうかを判断することはほぼ不可能です。 交差点オブザーバーのようなものを使用するのは良いことですが、それはChromeでのみ機能し、iOSをターゲットにしている場合はSafariを使用します:/

ただし、1つの解決策は、画像が非表示になっているかどうかを確認することです(例: el.offsetParent === null )が、画像が再び表示されると、 ng2-lazyload-imageは通知を受信せず、画像がビューポートにある場合は、ユーザーがスクロールを開始する前に画像は表示されません。 ただし、そのために*ngIfを使用できます。

<img
    *ngIf="container._scroll._el.offsetParent !== null"
    style="height: 1099px;"
    [src]="defaultImage"
    [lazyLoad]="image"
    [offset]="offset"
    [scrollTarget]="container._scroll._el">

しかし、それは良く見えません:/

つまり、イオンアプリでng2-lazyload-imageを使用できる場合とできない場合がありますが(レイアウトによって異なります)、ランタイムエラーは発生しません。

タイプミスをしました。
[lazyload]ではなく[lazyLoad]です

乾杯 :)

それは恥ずかしいほど単純に聞こえます。
rc1にアップグレードして試してみます。 ありがとう。

1:37 PMで月、2016年10月17日には、スタンFAASの[email protected]書きました:

タイプミスをしました。
[lazyload]ではなく[lazyLoad]です

乾杯 :)


スレッドを作成したため、これを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/tjoskar/ng2-lazyload-image/issues/37#issuecomment -254195387、
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/APPh0par6NR7EA3DA1GbibncX8gCb2YRks5q02wTgaJpZM4J5EjU

@StanFaas 、いいキャッチ!

123
同じエラーが発生します。どうすれば解決できますか。

このページは役に立ちましたか?
0 / 5 - 0 評価