2016-09-20 4 views
0

Я создаю мобильный сайт с угловым 2 поверх старой системы, из которой я обслуживаю html из веб-службы.Угловой код 2 в innerHTML

В обслуживаемом html есть ссылки, которые будут отправляться на угловые страницы в моем новом приложении. В настоящее время я использую <div [innerHTML]="serverDoc"></div> для рендеринга html.

Можно ли добавить (click)="goToPageX()" в свой серверный html, а затем вызвать его для вызова функции в классе типа скрипта, чтобы я мог направлять пользователя на нужную страницу через угловой 2-роутер?

Нужно ли это делать? Будут ли простые ссылки на правильный URL-адрес сохранить историю навигации неповрежденной, даже если она не проходит через угловой 2-роутер?

ответ

0

Если вы хотите использовать маршрутизатор, вы можете добавить директиву routerLink на свои кнопки или ссылки. Вам необходимо заранее настроить маршруты.

<button routerLink="/link/toPage">Go to page</button> 

Если вы хотите маршрутизировать программно, вы можете использовать навигационную функцию Маршрутизатора.

import { Router } from @angular/router 

@Component({ 
    selector: 'my-app', 
    template: '<button (click)="goToPage()">Go to page</button>' 
}) 
export class AppComponent { 
    constructor(private _router: Router){ } 

    goToPage(){ 
     this._router.navigate("/link/toPage"); 
    } 
} 

Подробнее на angular2's router documentation.

-------------- Edit --------------

Если вы хотите перейти по ссылке с помощью кнопки, вы можете сделать это в javascript, используя window.location.href. Это работает и для привязки к угловым положениям, если вы находитесь за его пределами.

<html> 
    <head> 
     <script> 
      function goToPage(){ 
       window.location.href = "http://www.google.com"; 
      } 
     </script> 
    </head> 
    <body> 
     <button onclick="goToPage()">google</button> 
    </body> 
</html> 
+0

Эти альтернативы не будут работать, так как я добавляю html в [innerHTML] компонента, из которого я не могу подключиться к угловому коду. Что вызывает мой первый вопрос о добавлении (click) в мой html, это не сработает ... – staffang

+0

Нет, '(click)' не может работать, потому что для этого потребуется угловое выполнение. Если вы хотите перейти на страницу с помощью кнопки в обычном html/js, вы можете сделать это, используя 'window.location.href'. Я отредактировал свой ответ, чтобы включить простой пример. –

Смежные вопросы