具有风帆js

时间:2016-02-24 10:32:49

标签: sails.js angular

我试图在前面设置一个带Angularjs 2的sails js应用程序。 我想使用angularJS系统路由,没有sails 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 {

}

如果我删除config / routes.js中的路由,这不起作用。 我尝试在config.blueprint.js中禁用一些选项,但没什么好处。

我想使用Angular路线来获得SPA并且不会重新加载页面。

感谢。

2 个答案:

答案 0 :(得分: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}
]);

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

此链接也可以为您提供帮助:

希望它可以帮到你, 亨利

答案 1 :(得分:0)

我必须为config / routes.js中的所有路由返回“/”,并让angular显示其他路径。