2016-05-30 5 views
0

Я пытаюсь реализовать угловое приложение 2 в качестве компонента joomla, используя кандидат-кандидат на углы2. Но у меня возникают проблемы с маршрутизацией на работу. Я думаю, что проблема есть, что делать с тем фактом, что URL углового приложения являетсяAngular 2 routing from joomla component

localhost/index.php?=com_mycomponent 

У меня есть следующий код:

index.html

<html> 
    <head> 
    <title>Test</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!--CSS--> 
    <!--<link rel="stylesheet" href="components/com_mycomponent/app/lib/bootstrap.min.css">--> 
    <link rel="stylesheet" href="components/com_mycomponent/app/styles/styles.css"> 

    <!-- 1. Load libraries --> 
    <!-- IE required polyfills, in this exact order --> 
    <script src="components/com_mycomponent/app/lib/shim.min.js"></script> 
    <script src="components/com_mycomponent/app/lib/zone.js"></script> 
    <script src="components/com_mycomponent/app/lib/Reflect.js"></script> 

    <script src="components/com_mycomponent/lib/system.src.js"></script> 
    <script src="components/com_mycomponent/app/lib/system.config.js""></script> 

    <script> 
     System.import('components/com_mycomponent/app/scripts/bootstrapper').catch(function(err){ console.error(err); }); 
    </script> 
    <base href="/"> 
</head> 

<!-- 3. Display the application --> 
<body> 
    <body> 
     <my-app>Loading...</my-app> 
    </body> 
</body> 
</html> 

Загрузчик .ts

import {bootstrap} from '@angular/platform-browser-dynamic'; 
import { ROUTER_PROVIDERS } from '@angular/router'; 
import {ShellComponent} from './shell.component'; 
import {HTTP_PROVIDERS} from '@angular/http'; 

bootstrap(ShellComponent, [ 
    HTTP_PROVIDERS, 
    ROUTER_PROVIDERS 
    ]); 

shell.component.ts

import {Component} from '@angular/core'; 
import {Http} from '@angular/http'; 
import { ROUTER_DIRECTIVES, Routes} from '@angular/router'; 

import {BComponent} from 'b.component'; 
import {AComponent} from 'a.component'; 


@Component({ 
    selector: 'my-app', 
    templateUrl: 'components/com_mycomponent/app/html/shell.html', 
    directives: [ROUTER_DIRECTIVES] 
}) 

@Routes([ 
    { 
     path: '/b', 
     component: BComponent 
    }, 
    { 
     path: '/', 
     component: AComponent 
    } 
]) 
export class ShellComponent{ 
    constructor() { 
    } 

    // ngOnInit() { 
    //  this.router.navigate(['/egendefinertrapport']); 
    // } 
} 

shell.html

<a [routerLink]="['/b']">BComponent</a> 

И я получаю следующее сообщение об ошибке:

EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property 'annotations' of undefined 

Я попытался изменить Баш HREF to '/index.php?option=com_atkstat', включая routerLink и пути, но безрезультатно. Любые берущие?

ответ

0

Я думаю, вам нужно предоставить пользовательский RouterUrlSerializer (новый RC-маршрутизатор) и пользовательскую LocationStrategy в beta.x (RC router-revrecated), чтобы настроить, какая часть URL-адреса используется или игнорируется угловым маршрутизатором.