angularjs には 2 つの既存の問題があります
1.
記事は $http を通じて読み込まれます。記事にはタイトルがあります。記事が読み込まれた後、ブラウザのタイトルを記事のタイトルに置き換えたいと思います。
つまり、投稿が読み込まれた後、ブラウザのタイトルと post.title は同じように表示されます。
クロスドメイン通信ソリューションを検索してこれを見ました(これら 3 つの方法のうち、最初の 2 つは現在の構造には適していないため、3 番目の方法を使用して同期を実装しています。)致命的なのは、トリガー (クリックなど) を介して同期する必要があるということです。実際、トリガーを介して同期するのではなく、自動的に同期する方法を知りたいだけです。
2.
$scope コールバック、
たとえば、この読み込み記事には、pre タグで囲まれたコードが含まれており、読み込み後に他のライブラリを使用して強調表示を実装する必要があるため、データがバインドされてレンダリングされた後に強調表示操作を実行する必要があります。しかし、解決策は見つかりませんでした。
私もいくつか自分で書きましたが、両方の長所を取り入れています
最初のタイプ:
データ バインディング後、現在のページのすべての pre タグを再帰的にクエリし、見つかった後、または限られた回数の経過後に強調表示します。
2 番目のタイプ:
window.setTimeout(function(){}, 1000);
どちらの方法でも、最初の方法は何度再帰しても機能しません。pre タグ
が見つかりません。
2 番目のオプションも可能ですが、良い解決策とは思えません
巴扎黑2017-05-15 16:54:56
クロスドメイン通信の意味がよくわかりません。コントローラー間の通信でしょうか? そしてトリガー?
1. data-* を使わずに直接 ng-bind を書くだけです
2.
が配置されているコントローラは、コントローラ main
と同じレベルにあります。親コントローラーをそれらの外部に追加してから、mainController.$scope.$parent.title = post.title
を使用するか、$rootScope を直接使用することができます (非推奨)。 $emit/$broadcast/$on 経由でこれを行うこともできますが、必須ではありません。 <title>
所在的controller是和 main
这个控制器平级的。你可以在他们之外加一个父控制器,然后mainController.$scope.$parent.title = post.title
, 或者直接用$rootScope (不怎么推荐)。也可以通过$emit/$broadcast/$on 这样来做 不过没什么必要了。
然后:
<title ng-bind="$parent.title||'Default Title'"></title>
3、 以 angular highlight
为关键字可以在github搜到一些不错的高亮插件。 bower install 之
4、 不要用window.setTimeout, 用angular提供的 $timeout()
它会返回一个promise。
5、 其实对于第二个问题更好的方法是使用 $resource.get().$promise.then();
次に:
angular height
をキーワードとして使用して、github でいくつかの優れたハイライト プラグインを検索できます。 🎜のバウアーインストール
4. window.setTimeout を使用しないでください。angular によって提供される $timeout()
を使用します。これは Promise を返します。 🎜
5. 実際、2 番目の問題を解決するより良い方法は、$resource.get().$promise.then();
// または $http サービスを使用して、リモート データが確実に実装前にロードされます。 🎜PHP中文网2017-05-15 16:54:56
記事を表示するテンプレートの title 要素にクラス wtitle
を追加すると、現在のページのタイトルが記事のタイトルに変更されます。
WeChatでもできますよ~
wtitleの機能は、element.text()の内容をdocument.titleとして設定することです。iframeを使用する目的は、アプリのWebビューで有効にすることです
リーリー