Angular 2 beta.0'ı çalıştırıyorum ve yönlendirmeyle uğraşıyorum. İşteHashLocationStrategy, yönlendirme yaparken # konum üretmiyor?
AppComponent var ne:
import {Component, provide} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {FORM_DIRECTIVES, CORE_DIRECTIVES} from 'angular2/common';
import {Http, Response, HTTP_PROVIDERS} from 'angular2/http';
import {RouteConfig, Location, LocationStrategy, HashLocationStrategy, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from 'angular2/router';
import {HomeComponent} from './components/home';
import {RowsComponent} from './components/rows';
import {ColumnsComponent} from './components/columns';
import {TableComponent} from './components/table';
@Component({
selector: 'app',
directives: [FORM_DIRECTIVES, CORE_DIRECTIVES, ROUTER_DIRECTIVES],
templateUrl: '/app/views/root.html',
providers: [ROUTER_PROVIDERS]
})
@RouteConfig([
{path:'/', name: 'Home', component: HomeComponent},
{path:'Rows', name: 'Rows', component: RowsComponent},
{path:'Columns', name: 'Columns', component: ColumnsComponent},
{path:'Table', name: 'Table', component: TableComponent}
])
class AppComponent {
public title = 'Responsive Layout';
public SelectedTab = 'Home';
constructor(location: Location) {
//location.go('Rows');
}
}
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
öğretici ve API referans yukarıda yaptığım gibi beni yapıyor, işaret gibi görünüyor Her. Ayrıca, index.html sayfamın başında <base href="/app/" />
var. Burada olması gerektiği gibi benim RouterLinks
<ul class="nav navbar-nav">
<li [class.active]="SelectedTab=='Home'"><a [routerLink]="['Home']" (click)="SelectedTab='Home'">Home</a></li>
<li [class.active]="SelectedTab=='Rows'"><a [routerLink]="['Rows']" (click)="SelectedTab='Rows'">Rows</a></li>
<li [class.active]="SelectedTab=='Columns'"><a [routerLink]="['Columns']" (click)="SelectedTab='Columns'">Columns</a></li>
<li [class.active]="SelectedTab=='Table'"><a [routerLink]="['Table']" (click)="SelectedTab='Table'">Table</a></li>
</ul>
yönlendirme davranır vardır. Hata alamıyorum. Bootstrap nav-çubuğundaki bu girişlerden birini tıkladığımda, görünümlerin değiştirildiğini ve uygun şablonları gösterdiklerini ve Bileşenlerinin çalışıp bağlı olduklarını görüyorum. Ancak, HashLocationStrategy
'u bootstrap(...)
numaralı aramamıza rağmen, URL'ler hala "HTML5 Stili": localhost:8080/app/Rows
, localhost:8080/app/#/Rows
olması gerektiğinde.
Kullanıcılarımın belirli bir görünümü işaretleyip geri gelebilmelerini istiyorsanız, eski # temelli yolu kullanmam gerektiğini düşünüyorum. /app/Rows
için izin verirseniz, sayfanın yenilenmesi klasöründe app
klasöründe bulunmadığından bir 404 neden olur.
Evet, sağlayıcıyı kaldırmak onu düzeltti. Neden olduğundan emin değilim, ama bu tüm farkı yarattı. –
burada da routerLink'i çalıştıran bileşenden router_providers kaldırıldı. Router_providers sadece bootstrap bileşeninde kullanılıyor gibi görünüyor. – longday