2014-04-29 13 views
6

Mam problem w grze AngularJS i potrzebuję kilku wskazówek.Używanie zewnętrznego adresu URL w Ng-include w AngularJS

Mam widok, w którym chcę umieścić zewnętrzny adres URL (na przykład http://www.w3schools.com). Osadzona strona HTML powinna reagować na zdarzenia, takie jak kliknięcie i dotknięcie, jak normalna strona html.

Użyłem dyrektywy ng-include, aby uzyskać tę pracę.

Oto fragment kodu:

<ion-content> 
     <div ng-include src="'http://www.w3schools.com'"</div> 
    </ion-content> 

Gdybym załadować html zewnętrznych, otrzymuję stronę zewnętrzną załadowany, ale wszystkie linki wewnątrz strony są złamane. Jeśli kliknę link na załadowanej stronie, wszystkie łącza wskazują teraz na adres localhost zamiast zewnętrznego adresu URL.

Jak mogę rozwiązać ten problem?

Z góry dziękuję!

+0

Witam, jeśli problem wynika z dostępu między domenami, proszę dać mi znać, jak mogę to naprawić. – Biswarup

+0

Linki wskazują na hosta lokalnego, ponieważ linki były względne, a nie bezwzględne adresy URL, chyba że wszystkie linki na tej stronie miały pełny adres URL http://www.w3schools.com/about, a nie/o tym, że nie będą działać. Będzie szukać/o na twoim serwerze. Nie chodzi o to, w jaki sposób należy używać programu include, ale jeśli chcesz go użyć w ten sposób, musisz utworzyć niestandardową dyrektywę, która najpierw pobierze adres http.get URL, a następnie przejrzy zawartość html i zastąpi wszystkie linki być absolutnym z domeny, z której pochodzili. – btm1

+0

Dzięki za wejście. Czy istnieje inny sposób, w jaki mogę umieścić internetowy html na mojej stronie bez zmiany adresów URL? Próbowałem zastosować metodę iframe, ale w elemencie iframe dotknięcie nie działa. – Biswarup

Odpowiedz

7

Wygląda na to, że chcesz tylko hostować zewnętrzną stronę w swoim widoku, a następnie powinieneś po prostu połączyć ją w ramkę iframe.

<iframe src="http://www.w3schools.com"></iframe> 

Jeśli chcesz coś magicznego/dynamiczny rzeczy się stało, trzeba będzie przeanalizować treść i przepisać adresy URL, należy dołączyć ładowarki itp Powodem Twój ng-to nie działa tak jak oczekiwano, ponieważ jest tylko czyta treść tego adresu URL i osadza go w twoim widoku "jak gdyby" to był tylko szablon, który zrobiłeś (włączając w to kątowe znaczniki) i chciałeś hostować zewnętrznie z jakiegoś powodu.

Powiązane problemy