Terdapat dua masalah angularjs sedia ada
1.
Sebuah artikel dimuatkan melalui $http Artikel tersebut mempunyai tajuk Sekarang saya ingin menggantikan tajuk pelayar dengan tajuk artikel selepas artikel dimuatkan Struktur html adalah seperti berikut
<!doctype html>
<html data-ng-app="app">
<head data-ng-controller="head">
<meta charset="utf-8"/>
<titlte data-ng-bind="title||'Document'"></title>
</head>
<body>
<p data-ng-controller="main">
<button data-ng-click="getPost()">GET POST</button>
<p data-ng-module="post">
<h2 data-ng-bind="post.title"></h2>
<article data-ng-bind="post.content"></article>
</p>
</p>
</body>
</html>
Iaitu, selepas siaran dimuatkan, tajuk penyemak imbas dan post.title dipaparkan sama.
Saya telah mencari penyelesaian komunikasi merentas domain dan melihat ini (Bagaimanakah pengawal AngularJS berkomunikasi? Daripada ketiga-tiga kaedah ini, dua yang pertama tidak sesuai untuk struktur semasa saya, jadi saya menggunakan kaedah ketiga dan melaksanakannya, tetapi perkara yang membawa maut ialah ia perlu disegerakkan melalui pencetus (klik, dll.), jadi sebenarnya, saya hanya ingin bertanya bagaimana untuk menyegerakkan secara automatik dan bukannya menyegerakkan melalui pencetus
$skop panggil balik,
Ambil artikel memuatkan ini sebagai contoh, artikel yang dimuatkan mengandungi kod yang dibalut dengan teg pra Selepas dimuatkan, perpustakaan lain perlu digunakan untuk melaksanakan penyerlahan, jadi operasi penyerlahan perlu dilakukan selepas data diikat dan diberikan. . Namun, saya tidak menemui sebarang penyelesaian.
Saya juga menulis sendiri, dan saya mendapat yang terbaik daripada kedua-dua dunia
Jenis pertama:
Selepas pengikatan data, tanya secara rekursif semua teg pra halaman semasa dan serlahkannya selepas ia ditemui atau selepas beberapa kali
Jenis kedua:
window.setTimeout(function(){}, 1000);
Hasil daripada kedua-dua kaedah ialah yang pertama tidak berfungsi Tidak kira berapa kali kita mengulangi, kita tidak dapat mencari tag pra
Pilihan kedua mungkin, tetapi saya rasa ia bukan penyelesaian yang baik
Tidak faham apa yang anda maksudkan dengan komunikasi merentas domain? Mungkinkah ia komunikasi antara pengawal? Dan pencetus?
1. Hanya tulis ng-bind terus tanpa menggunakan data-* seperti ini
2. Pengawal di mana
<title>
terletak berada pada tahap yang sama dengan pengawalmain
. Anda boleh menambah pengawal induk di luar mereka danmainController.$scope.$parent.title = post.title
, atau menggunakan $rootScope secara langsung (tidak disyorkan). Anda juga boleh melakukan ini melalui $emit/$broadcast/$on tetapi ia tidak perlu.Kemudian:
3. Anda boleh mencari beberapa pemalam penyerlahan yang bagus pada github menggunakan
angular highlight
sebagai kata kunci. pemasangan bower4. Jangan gunakan window.setTimeout Gunakan
$timeout()
yang disediakan oleh sudut.5. Sebenarnya, cara yang lebih baik untuk menyelesaikan masalah kedua ialah menggunakan perkhidmatan
$resource.get().$promise.then();
// atau $http untuk memastikan data jauh dimuatkan sebelum pelaksanaan.Tambahkan kelas
wtitle
pada elemen tajuk dalam templat yang memaparkan artikel dan tajuk halaman semasa akan ditukar kepada tajuk artikel.Anda juga boleh melakukannya dalam WeChat~
Fungsi wtitle adalah untuk menetapkan kandungan element.text() sebagai document.title Tujuan menggunakan iframe adalah untuk menjadikannya berkesan dalam paparan web apl