問題タブ [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.
angularjs - MVC の下の AngularJS $templateCache
これに関するドキュメントや記事は見つかりませんでした。
私が働いている会社には、MVCプロジェクトがあります。
そして、その上に Angular SPA を構築します。
また、オフラインで動作するようにしたいと考えています。
だから、キャッシュが必要です。AngularJS に $templateCache モジュールが見つかりました。
そしてそれを実行しようとしています。プロジェクトは MVC であるため、ng-view にロードするすべてのテンプレートは実際には MVC 部分ビューであり、{Controller}/{Action} を呼び出すことでロードできます。
しかし、この場合に $templateCache を実装するインターネット上の例はありません。
すべての例は、mytemplate.html や単なる文字列などの静的テンプレートの使用方法を示しています。これは MVC では機能しません。
だから、私はそれを達成する方法を理解しようとしていた.app.tsのためにこれを書いた:
明らかにこれはうまくいきません。助言がありますか?ありがとう。
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 を使用するプラグインでは、コードを変更せずにそれを行うことはできません。
それで、プラグインコードに触れずに、ここで実際に何が起こっているのか、どうすればこれを修正できるのか、誰か説明してもらえますか?
angularjs - ディレクティブでコントローラにアクセスする方法[jasmine]
ディレクティブをテストするために、ディレクティブのメソッドと変数にアクセスするのに苦労しています。私は何を間違っていますか?ディレクティブとテスト ファイルを添付しました。私はそれが正しいことを知っていて、それが問題ではないことを知っているので、カルマconfを含めませんでした。
accountsearch.spec.js <-- これはテスト ケースを含むファイルです
これは実際のディレクティブです。コントローラーにアクセスするために非常に多くの方法を試しましたが、何が間違っているのかわかりません。
javascript - HtmlをJavascriptに埋め込む代わりに、$templateCache.put(...)のコンテンツをhtmlファイルに入れる方法は?
次のコード スニペットのように JavaScript に HTML を埋め込むことは、1 つのファイル app.js と多くのモジュールがある場合、維持できません。
app.js
テンプレートの代わりに templateUrl を使用するのと同じように、これらの 100 個の LoC を $templateCache.put(...) から Html ファイルに移行することは可能ですか? または、コードを制御できなくなっているため、これを達成するための別のアプローチを提案します。$templateCacheを使用してすばやく取得したいと考えています。
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
か?
angularjs - テンプレートと templateUrl で $templateCache を使用する
Grunts ng-template を使用して、HTML テンプレートを $templateCache に保存しています。angular docs は、次のようにテンプレートを使用できることを示唆しています。
またはこのように:
違いはなんですか?この関数を使用するためだけに、すべてのディレクティブ/コンポーネントに $templateCache を挿入するのはあまり好きではありません。これはパフォーマンスに関するものですか?
私はこの記事を読みました:テンプレートとtemplateUrl Angularjsの間のパフォーマンスの違いはどれくらいです か?私が正しければ、(templateUrlではなく)テンプレートを使用する方が少し高速です。違いはこれだけですか?