問題タブ [angular-templatecache]

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 に答える
108 参照

angularjs - MVC の下の AngularJS $templateCache

これに関するドキュメントや記事は見つかりませんでした。
私が働いている会社には、MVCプロジェクトがあります。
そして、その上に Angular SPA を構築します。
また、オフラインで動作するようにしたいと考えています。
だから、キャッシュが必要です。AngularJS に $templateCache モジュールが見つかりました。
そしてそれを実行しようとしています。プロジェクトは MVC であるため、ng-view にロードするすべてのテンプレートは実際には MVC 部分ビューであり、{Controller}/{Action} を呼び出すことでロードできます。
しかし、この場合に $templateCache を実装するインターネット上の例はありません。
すべての例は、mytemplate.html や単なる文字列などの静的テンプレートの使用方法を示しています。これは MVC では機能しません。
だから、私はそれを達成する方法を理解しようとしていた.app.tsのためにこれを書いた:

明らかにこれはうまくいきません。助言がありますか?ありがとう。

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

javascript - バンドル後の相対テンプレートUrlのAngular $templateCache 404エラー

AngularJS プロファイルとAngular Toastr プラグインを組み合わせた Grails 3 を使用しています。
アプリケーションを開発モードで実行すると、すべてが完全に機能しますが、アプリを (縮小せずに) バンドルすると、プラグインのテンプレートを読み込めなくなり、次のエラーが発生します。

バンドルされたコードを確認したところ、次の行が見つかりました。

テンプレートキャッシュでテンプレートが正しく初期化されているようです。

コントローラーに $templateCache を挿入して呼び出し$templateCache.get("directives/toast/toast.html")てみたところ、正しいテンプレートが返されました。

でアクセスできるのに、バンドルするとテンプレートが正しくロードされない理由は何$templateCache.get(...)ですか?
$templateCache の正しい使い方について、私が見逃していることはありますか?

PS: angular-bootstrap テンプレートにも同じ問題があることに気付きました

編集絶対的なtemplateUrlsを使用すると、すべてが機能することがわかったので、相対templateUrlsがどのように機能するかを完全には理解していないようです。
アプリがバンドルされると、すべての JS コードが別のパスを持つ 1 つのファイルに連結されます。これにより、$templateCache を介した読み込みが中断されるようです。今、すべての templateUrls を絶対にすることは解決策ですが、相対 templateUrl を使用するプラグインでは、コードを変更せずにそれを行うことはできません。

それで、プラグインコードに触れずに、ここで実際に何が起こっているのか、どうすればこれを修正できるのか、誰か説明してもらえますか?

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

angularjs - ディレクティブでコントローラにアクセスする方法[jasmine]

ディレクティブをテストするために、ディレクティブのメソッドと変数にアクセスするのに苦労しています。私は何を間違っていますか?ディレクティブとテスト ファイルを添付しました。私はそれが正しいことを知っていて、それが問題ではないことを知っているので、カルマconfを含めませんでした。

accountsearch.spec.js <-- これはテスト ケースを含むファイルです

これは実際のディレクティブです。コントローラーにアクセスするために非常に多くの方法を試しましたが、何が間違っているのかわかりません。

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

javascript - HtmlをJavascriptに埋め込む代わりに、$templateCache.put(...)のコンテンツをhtmlファイルに入れる方法は?

次のコード スニペットのように JavaScript に HTML を埋め込むことは、1 つのファイル app.js と多くのモジュールがある場合、維持できません。

app.js

テンプレートの代わりに templateUrl を使用するのと同じように、これらの 100 個の LoC を $templateCache.put(...) から Html ファイルに移行することは可能ですか? または、コードを制御できなくなっているため、これを達成するための別のアプローチを提案します。$templateCacheを使用してすばやく取得したいと考えています。

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

javascript - $scope が 1 つのメソッドのみでページにキャッシュされる

このページがロード$scopeされると、以下の各メソッドに同じid値が含まれます。必要に応じてデータが入力され、メソッドself.gridDataでアクセスできます。selectAllClicked

ページから移動したり、ページに戻ったりする$scopeと、メソッド内の ID を除いて、すべての ID が再生成され.selectAllClickedます。.selectClickedAllメソッドでidは、のはconsole.log($scope)元のページの読み込みからです。self.gridDataは新しいものにロードされます$scopeが、古い$scopeものは で呼び出されるため.selectAllClicked、 は起動しangular.forEachません。

これは、以下の最初の要素の ng-table の headerディレクティブに関連する問題のようです (私は信じています) 。tdからチェックボックスをロードheaderCheckbox.htmlし、テンプレートキャッシュに保存しています。ここでも仮定しますが、これにより、チェックボックスが再レンダリングされたスコープではなく、元のスコープに関連付けられるようになります。

$scope.selectAllClicked新しくレンダリングされた にそれ自体を強制的に適用する方法はあります$scopeか?

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

angularjs - テンプレートと templateUrl で $templateCache を使用する

Grunts ng-template を使用して、HTML テンプレートを $templateCache に保存しています。angular docs は、次のようにテンプレートを使用できることを示唆しています。

またはこのように:

違いはなんですか?この関数を使用するためだけに、すべてのディレクティブ/コンポーネントに $templateCache を挿入するのはあまり好きではありません。これはパフォーマンスに関するものですか?

私はこの記事を読みました:テンプレートとtemplateUrl Angularjsの間のパフォーマンスの違いはどれくらいです か?私が正しければ、(templateUrlではなく)テンプレートを使用する方が少し高速です。違いはこれだけですか?