問題タブ [zonejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
22 参照

angular - ベータ 15 からベータ 16 にアップグレードする際に、大幅な遅延が発生する原因は何ですか?

私はベータ 15 でアプリを書いていましたが、最新バージョンにアップグレードする時が来ました。beta 15からに更新したときbeta 16(ZoneJS を から0.6.10に更新したとき0.6.12)、アプリがブラウザー全体をフリーズしていることに気付きました。私が調査したところ、これは私が前面に提示した大きなオブジェクト、つまり 1500 個のオブジェクトの配列 (単純な表で提示) が原因であることがわかりました。ただし、この問題は<beta15. たぶん私が気付いていなかった、何か変わったことがありますか?

私が見つけた唯一のものは:

変更検出順序が変更されました:

  1. ダーティ チェック コンポーネント入力
  2. ダーティ チェック コンテンツの子
  3. レンダー ノードを更新する

ただし、私が使用しているテーブルはオブジェクトのみを表示するため、これはそれに影響を与えるべきではありません..

0 投票する
3 に答える
2629 参照

angular - Zone.jsのObservableに「モンキーパッチ」を適用するにはどうすればよいですか?

Angular 2 コンポーネントを作成していますが、特定の Observable パターンを使用すると、Angular の変更検出が機能しません。次のようになります。

次に、私のテンプレートで:

Observable は、readyToLogin$に応答して発生する一連の同期操作に基づいているためhttp.get()(Angular の「モンキー パッチ」は、いつ変更を検出する必要があるかを確実に認識できるようにします)、「ログイン準備完了」メッセージtrueは適切なタイミングで切り替わります。 .

ただし、 がprocessSignInResponse()生成されるPromise<>ため、 の結果にサブスクライブするものはすべてflatMap、http 要求の完了イベントとは非同期に発生します。したがって、変更を確認する必要があることをコンポーネントのゾーンに通知するには、手動で介入する必要があります。

サブスクリプションが解決された後に変更を検出するsignInResponse$ことを知っている方法でオブザーバブルをラップするにはどうすればよいですか?NgZone

アップデート

ブランドンの答えは、RC5に更新するまで機能し、その時点で再び機能しなくなりました。私が使用していたサードパーティのライブラリは、 Zone.js を使用していないことがわかりました。それが解決されれば、回避策を使用する必要はまったくありませんでした。ビルトインのモンキー パッチが機能しました。

0 投票する
0 に答える
322 参照

angularjs - Angular 2: RC 1 バージョンで @angular モジュールが見つかりません

RC1 バージョンで angular2 アプリケーションを書き始めました。angular.io docsで説明されているように、ルートに個別のsystem.config.jsファイルを作成しました。

node_modules の下で @angular モジュールを検索するように参照しましたが、ここで見ることができる'@angular': 'node_modules/@angular'404 が表示されています。ドキュメントに記載されているガイドラインに従ってブートストラップしました。ここに私のapp/main.tsファイルにあります

index.htmlは次のようになります。

@angular/core@angular/platform-b​​rowser の両方をインストールしました

どんな助けでも大歓迎です!

0 投票する
0 に答える
400 参照

angular - Facebook Javascript SDK を Angular 2 および Zone で動作させるにはどうすればよいですか?

FB Javascript SDK を使用して angular2 アプリの認証サービスを構築しようとしていますが、メソッドFB.login( window.FB.login) が「ゾーン外」であるという事実は、Web アプリの「自動レンダリング機能」を壊しています。呼び出しの結果として行われた変更は、FB.login「監視されていない」とビューを更新しないために発生します。

現在、それを機能させるために、ゾーンを手動で定義しています:

ただし、これは私の意見では「エレガントなソリューション」ではありません。

[FB Javascript SDK で] 動作させる他の方法はありますか?

0 投票する
1 に答える
1276 参照

angular - Angular CLI 共有フォルダーのサブフォルダー

angular 2の「共有」フォルダーの1つがサービス/モデルでいっぱいになっているため、ファイルを共有フォルダーのサブフォルダーに移動したいと思います

私はこのフォルダ構造から行きたいです:

私がそうすると、アプリはトランスパイルし、CLI はビルドを作成しますが、ブラウザにはエラーがあります:

上記のファイルの場所がありません /sub-folder/

すべてのインポートが正しく行われました (test.service.ts ファイルをサブフォルダーの内外に移動し、サブフォルダーから取り出して共有フォルダーに戻すと、正常に動作します...すべてが読み込まれます/エラーなし)

また、「system-config.ts」ファイルを更新して「app/shared/sub-folder」バレルを含め、「サブフォルダー」に適切なエクスポートを含む index.ts を追加しました。

共有フォルダー内のサブフォルダーを使用するにはどうすればよいですか?

0 投票する
1 に答える
187 参照

javascript - ReferenceError: cliSystemConfigPackages が定義されていません

Angular 2 のプログラミングを開始しましたが、エラー メッセージが表示されました。次の回答を見ました: Error: ReferenceError: cliSystemConfigPackages is not defined

そして何も問題を解決しません。これはエラーです:

これは私のpackage.jsonです:

このエラーで私を助けることができる人はいますか?

0 投票する
1 に答える
140 参照

express - ExpressJS と Angular2 を使用するときに @angular の依存関係を解決するには?

ExpressJS と Angular2 を使用して Web アプリケーションを作成しようとしています。Zone.js は @angular ライブラリを読み込もうとしている (失敗した) ようですが、それを修正する方法がわかりません。

これまでの私のプロセスは次のようになります。

  1. build/node_modulesフォルダにコピー:
    • core-js/client/shim.min.js
    • zone.js/dist/zone.js
    • Reflect-metadata/Reflect.js
    • systemjs/dist/system.src.js
  2. /scripts URL をExpressJS のnode_modulesフォルダーにマップする
  3. 私のインデックス ページで、スクリプト タグで上記のライブラリをソースし、SystemJS をロードします。

    /li>
  4. そして最後に、bootstrap.tsファイル:

    /li>

ただし、これを実行すると、次のエラーが発生します。

@angularライブラリをbuild/node_modulesにコピーし、メイン ページのタグにリストされている各フォルダーからindex.jsファイルを追加しようとしまし<script>たが、違いはありません。


誰でもこれを修正する方法を提案できますか?

0 投票する
0 に答える
126 参照

javascript - Angular2 - queryParam の変更は実行されますが、Safari + IE11 には反映されません。

アクティブな行の状態を更新して保存するために、コンポーネントで queryParam の変更をリッスンしています。行をクリックするとその行が強調表示され、ブラウザの戻るボタンを使用すると前の行がマークされます。行をアクティブにします。ここまでは順調ですね。しかし、IE11 と Safari があります。

IE 11 または Safari でブラウザの [戻る] ボタンを使用すると、コンポーネントのコードが実行されますが、DOM には反映されません。NgZone.run(callback) コールバック関数内で変更を実行すると、反映されます。

動作を再現するPlunkは次のとおりです。