Saya memiliki indeks benda kembali dari pencarian. Template ini memiliki sebuah ng-repeat mana item's URL dibangun dari data ke dalam model, tetapi di akhir markup "a" tag tidak bekerja. Ng href dan href benar, URL bar berubah ketika link diklik tetapi halaman tidak memuat. Melakukan refresh pada browser setelah klik tidak mendapatkan halaman. Jadi sesuatu di Sudut adalah mengubah URL bar tetapi tidak memicu beban???
Bisa't membuat ini mereproduksi di jsfiddle karena masalah tampaknya di loading json ke dalam template setelah $sumber daya.query() fungsi, yang saya dapat't lakukan dari jsfiddle. Dengan simulasi query memuat data statis yang jsfiddle bekerja meskipun akhir markup terlihat identik.
AngularJS template seperti ini:
<div ng-controller="VideoSearchResultsCtrl" class="row-fluid">
<div class="span12" >
<div class="video_thumb" ng-repeat="video in videos">
<p>
<a ng-href="/guides/{{video._id}}" data-method="get">
<img ng-src="{{video.poster.large_thumb.url}}">
</a>
</p>
</div>
</div>
</div>
Hasil terlihat baik-baik saja dan menghasilkan akhir berikut markup:
<div ng-controller="VideoSearchResultsCtrl" class="row-fluid ng-scope">
<div class="span12">
<!-- ngRepeat: video in videos --><div class="video_thumb ng-scope" ng-repeat="video in videos">
<p>
<a ng-href="/guides/5226408ea0eef2d029673a80" data-method="get" href="/guides/5226408ea0eef2d029673a80">
<img ng-src="/uploads/video/poster/5226408ea0eef2d029673a80/large_thumb_2101146_det.jpg" src="/uploads/video/poster/5226408ea0eef2d029673a80/large_thumb_2101146_det.jpg">
</a>
</p>
</div><!-- end ngRepeat: video in videos -->
</div>
</div>
Controller kode ini:
GuideControllers.controller('VideoSearchResultsCtrl', ['$scope', '$location', 'VideoSearch',
function($scope, $location, VideoSearch) {
$scope.videos = VideoSearch.query({ namespace: "api", resource: "videos", action: 'search', q: $location.search().q });
}
]);
Menggunakan AngularJS 1.2-rc.3. I've juga mencoba menggunakan aplikasi yang ng-klik dan tua biasa onclick untuk mendapatkan halaman dimuat bahkan dengan URL statis tapi klik yang tidak pernah memicu kode. BTW statis non-sudut link di halaman ini, melakukan pekerjaan, jadi Menu Bar dan Keluar kerja.
Apa yang telah saya lakukan salah di sini atau ini bug di AngularJS?
Dari milis saya mendapat jawaban:
apakah anda kebetulan dikonfigurasi $locationProvider untuk html5Mode? Jika ya, ini akan menyebabkan masalah anda. Anda bisa memaksa untuk selalu pergi ke url dengan menambahkan target="_self" anda tag. Memberikan tembakan.
Saya telah dikonfigurasi untuk menggunakan HTML5 sehingga menambahkan target="_self"
untuk tag yang tetap masalah. Masih meneliti mengapa ini bekerja.
Tidak yakin jika ini telah diperbarui sejak posting ini dijawab, tetapi anda dapat mengkonfigurasi ini di startup aplikasi. Pengaturan rewriteLinks palsu re-memungkinkan anda a
tag, tapi masih menyisakan html5mode
, yang dilengkapi dengan semua manfaat tersendiri. Saya telah menambahkan sedikit logika sekitar pengaturan ini untuk kembali html5mode
di browser mana jendela.sejarah
tidak didukung (IE8)
app.config(['$locationProvider', function ($locationProvider) {
if (window.history && window.history.pushState) {
$locationProvider.html5Mode({
enabled: true,
requireBase: true,
rewriteLinks: false
});
}
else {
$locationProvider.html5Mode(false);
}
}]);
Aku tahu ini posting lama, tapi aku baru saja berlari ke dalam masalah ini juga. Saya .halaman html yang memiliki basis
//WRONG!
<base href="/page" />
dan fix:
//WORKS!
<base href="/page/" />
melihat ke depan-slash ('/') setelah 'halaman'.
Tidak yakin apakah ini berlaku untuk kasus-kasus lain, tapi cobalah!
AngularJS menderita jarang dokumentasi, saya berharap mereka mendapatkan momentum akan memperbaikinya. Saya pikir AngularJS ini terutama dimaksudkan sebagai SPA, dan mungkin ide di balik menonaktifkan secara default semua kategori memungkinkan seseorang untuk dengan mudah menggabungkan sudut ke beberapa sudah ada html.
Hal ini memungkinkan untuk cepat refactoring default "routing" perilaku "tradisional" website (baik, script halaman-halaman yang terhubung antara satu sama lain) ke sudut routing sistem, yang lebih dari sebuah pendekatan MVC, lebih cocok untuk Aplikasi Web.
Saya lihat ini sudah tua, tapi ini adalah salah satu hasil teratas di Google. Jadi jika anda menggunakan Sudut 7, dan hanya ingin menghubungkan beberapa file, kemudian dimasukkan ke dalam "aset" direktori:
Sekarang, ketika anda ingin link file yang anda hanya dapat menggunakan href tag seperti di bawah ini:
<img src="assets/ang_1.png" alt="Angular">
Catatan: anda hanya dapat link ke aset folder secara default, sehingga anda benar-benar harus menempatkan file anda di sana.