2016-02-24 37 views
1

我想在前面安装Angularjs 2风帆js应用程序。 我想使用angularJS系统路由和没有风帆JS系统。AngularJS 2路线与风帆js

如何禁用帆的路线并让角控制它们? 这是我app.component.ts,我宣布的路线/帐户

import {View, Component} from 'angular2/core'; 
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router'; 
import {AccountComponent} from './account.component'; 

@Component({ 
    selector: 'my-app', 
    template: `<router-outlet></router-outlet>`, 
    directives: [ROUTER_DIRECTIVES] 
}) 
@RouteConfig ([ 
    {path: '/account', name: 'Account', component: AccountComponent} 
]) 


export class AppComponent { 

} 

如果我删除在配置/ routes.js的路线,这是行不通的。 我尝试禁用config.blueprint.js中的一些选项,但没有什么好处。

我想要使用Angular路线有一个SPA,不要重新加载页面。

谢谢。

回答

1

实际上,在尝试直接访问路由而不在服务器上进行配置时,出现错误是很正常的。事实上,当使用路由时,Angular2没有任何与服务器的交互,所以路由的实际地址正在更新(并且没有#/ hashbang方法)。该路径在服务器上不存在。如果你加载HTML入口点文件,一切都会正常工作。唯一的问题是,当您尝试直接从其路径访问路线时...

默认情况下,Angular2使用HTML5历史记录。如果您不想遇到此问题,则需要更新服务器以便为您定义的每个路径路径提供index.html文件。

如果你想切换到HashBang方法,您需要使用此配置:

import {bootstrap} from 'angular2/platform/browser'; 
import {provide} from 'angular2/core'; 
import {ROUTER_PROVIDERS} from 'angular2/router'; 
import {LocationStrategy, Location, HashLocationStrategy } from 'angular2/router'; 

import {MyApp} from './myapp'; 

bootstrap(MyApp, [ 
    ROUTER_PROVIDERS, 
    provide(LocationStrategy, {useClass: HashLocationStrategy} 
]); 

在这种情况下,当您刷新页面或直接访问该页面时,将再次显示(但你的地址将有一个#)。

此链接可以帮助你还有:

希望它可以帮助你, 蒂埃里

0

我必须回到 “/” 在配置/路由的所有路由.js并让角度显示其他视图。