saya sedang mengajukan...
Perilaku saat ini:
Halo kawan-kawan.
Setelah diskusi di PR yang saya buat untuk memperbaiki kesalahan dalam layanan $location untuk url yang berisi apostrof @gkalpak perhatikan bahwa
lihat PR untuk lebih jelasnya. https://github.com/angular/angular.js/pull/16098
Perilaku yang diharapkan/baru:
url yang tidak dikodekan dan didekodekan harus berfungsi menggunakan layanan $location
Versi sudut: 1.x.
Peramban: semua
Ada yang lain:
Bagaimana memperbaikinya
Di src/ng/browser.js ada fungsi fireStateOrUrlChange yang memiliki validasi ini
if (lastBrowserUrl === self.url() && prevLastHistoryState === cachedState) {{
kembali;
}
Masalah utama tampaknya adalah bahwa kita membandingkan self.url() dengan lastBrowserUrl, tetapi lastBrowserUrl dapat disetel dari sumber yang berbeda, tidak selalu dengan encoding/decoding yang sama
@gkalpak maksud Anda (dari komentar Anda ) melakukan sesuatu seperti url = urlResolve(url).href
dalam $browser.url
atau mengubah semua panggilan ke $browser.url(val)
agar konsisten? Menambahkan urlResolve
tampaknya berhasil, meskipun mengubah beberapa pengujian (beberapa URL sekarang diakhiri dengan /
).
@jbedard , saya tidak memikirkan detail implementasinya. Saya mengacu pada hasil akhirnya :grin:
@dmartres dapatkah Anda mengonfirmasi jika ini masih menjadi masalah di 1.7.3? Saya pikir aee7d53a6b5d3d7bc0a1124fd3df9b263777e72e (memperbaiki #16592) mungkin telah memperbaiki ini?
Kami telah memperbaiki sebagian masalah ini menggunakan browser <a href>
untuk menormalkan URL di beberapa area utama (https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0, https://github.com/ angular/angular.js/commit/2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). Namun tidak ada browser yang menormalkan semuanya dengan metode ini. Untuk benar-benar memperbaikinya, kita perlu menerapkan normalisasi sendiri.
Saya menerapkan POC untuk melakukan normalisasi itu secara manual, namun kami memutuskan ini adalah perubahan yang terlalu besar pada saat ini. FYI 15 dari yang diuji ditambahkan dalam komit itu saat ini gagal di chrome.
Untuk alasan ini kami akan menempatkan ini dalam status "tidak akan diperbaiki".
Komentar yang paling membantu
Kami telah memperbaiki sebagian masalah ini menggunakan browser
<a href>
untuk menormalkan URL di beberapa area utama (https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0, https://github.com/ angular/angular.js/commit/2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). Namun tidak ada browser yang menormalkan semuanya dengan metode ini. Untuk benar-benar memperbaikinya, kita perlu menerapkan normalisasi sendiri.Saya menerapkan POC untuk melakukan normalisasi itu secara manual, namun kami memutuskan ini adalah perubahan yang terlalu besar pada saat ini. FYI 15 dari yang diuji ditambahkan dalam komit itu saat ini gagal di chrome.
Untuk alasan ini kami akan menempatkan ini dalam status "tidak akan diperbaiki".