Rumah > Soal Jawab > teks badan
Ini adalah laluan saya:
phonecatApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: 'PhoneDetailCtrl'
}).
otherwise({
redirectTo: '/phones'
});
}]);
Ini ialah html
kod saya:
<a href="#/phones/{{phone.id}}">{{phone.name}}</a>
Atribut href
bermula dengan nombor #
Apabila nombor #
ini disertakan, penghalaan akan berfungsi seperti biasa. Jika anda mengalih keluar nombor #
, laluan tidak akan menemui laluan:
Not found
Apabila saya menggunakan vuejs
dan vue-router
, ini ialah laluan saya:
var router = new VueRouter();
router.map({
"/": {
component: phoneList
},
"/phones": {
component: phoneList
},
"/phones/:phoneId": {
component: {
template: 'TBD: detail view for <span>{{$route.params.phoneId}}</span>',
}
}
});
router.start(app, "#app");
Ini ialah html
:
<a href="#/phones/{{phone.id}}">{{phone.name}}</a>
Begitu juga, penghalaan dengan nombor #
berfungsi seperti biasa
Cannot GET /phones/motorola-xoom-with-wi-fi
Mengapa ini berlaku? Apakah sebenarnya yang dilakukan oleh nombor ini? #
Mengapakah
tidak boleh dikenali tetapi http://localhost:8000/phones/motorola-xoom
boleh dikenali? http://localhost:8000/app/index.html#/phones/motorola-xoom
ringa_lee2017-05-15 17:01:24
Apl Web perlu mengenal pasti keadaan yang berbeza melalui URL Keadaan yang berbeza sepadan dengan URL yang berbeza, yang sesuai untuk bergerak ke hadapan dan ke belakang, dan untuk menyimpan penanda halaman.
Walau bagaimanapun, untuk memastikan pengalaman pengguna dalam Apl Web, peralihan status halaman biasanya tidak menyegarkan halaman, yang sering dicapai melalui ajax.
Ajax tradisional tidak akan menjejaskan bar alamat (permintaan diselesaikan melalui objek XHR, dan bukannya meminta URL baharu), jadi bagaimana jika anda mahu URL sepadan dengan keadaan halaman yang berbeza? Kaedah seperti windows.location
akan menyegarkan keseluruhan halaman.
Ini memerlukan penggunaan #
tradisional. Titik utama pada asalnya membenarkan anda untuk bergerak antara bahagian yang berbeza pada halaman semasa, menyokong ke hadapan dan ke belakang serta menyimpan penanda halaman, jadi ia digunakan dalam penghalaan Apl Web. Dengan cara ini, www.example.com/index.html#phones dan www.example.com/index.html#users boleh mewakili dua keadaan dan peralihan tidak akan memuatkan semula halaman.
API Sejarah baharu boleh mengalih keluar #
, tetapi pelayan perlu menyediakan versi sandaran, jadi saya tidak akan menerangkan butiran di sini.
巴扎黑2017-05-15 17:01:24
Mula-mula pelajari pengetahuan asas penghalaan hadapan, perkara paling asas seperti onHashChange dan pushState, malah tulis sendiri laluan berskala kecil sebelum menggunakannya!
Walaupun anda tidak belajar, sila baca dokumentasi rasmi dengan teliti dan lengkap, contoh rasmi adalah sangat jelas!
高洛峰2017-05-15 17:01:24
var router = new VueRouter({
history: true, //html5模式 去掉锚点
saveScrollPosition: true //记住页面的滚动位置 html5模式适用
})
Vue mengkonfigurasi mod penghalaan kepada mod html5 Ia disebut dalam dokumen rasmi tetapi ia tidak menyatakan cara menulisnya
伊谢尔伦2017-05-15 17:01:24
Adalah disyorkan untuk menggunakan v-link="{path : '/phones'}" dalam html supaya anda tidak perlu risau tentang hash
巴扎黑2017-05-15 17:01:24
Ini adalah cara bahagian hadapan melaksanakan penghalaan #Hujung belakang juga dipanggil cincang, yang sebenarnya serupa dengan titik utama yang anda fikirkan ialah laluan, yang memerlukan kerjasama bahagian belakang dan seumpamanya, ia adalah untuk pengalaman yang lebih baik Anda boleh pergi ke belakang dan ke hadapan.
淡淡烟草味2017-05-15 17:01:24
Muat turun pautan sauh pada Baidu, kemudian baca dokumentasi angularjs dan vuejs, saudara