2017-01-20 40 views
0

想象一下,使用$routeProvider的多條路線,我們有一個AngularJs應用程序(通過多個控制器,服務,指令和運行方法)。現在我們需要在一個頁面中使用相同的應用程序。這意味着不同路線的模板現在應該同時在一個頁面中可見。如何在單個頁面中運行多路徑角應用程序

我不能使用不同的iframes,因爲那麼很難從包裝應用程序訪問那些controllers$scope
這可能不使用iframe s?

+0

使用的指令? – Ankh

+0

@Ankh如何?你能解釋更多嗎? – Reyraa

+0

這種方式似乎沒有成功。 –

回答

1

你在找什麼是ng-includeng-controller。使用ng-include,你可以在包含它的塊中插入一個html並使用ng-controller,你可以爲同一個塊插入一個控制器。我不希望使用iframe,因爲這是一種不好的做法,您將無法訪問範圍和很多原生的角度功能。

編輯:既然你正在使用的run()函數,你可以試試下面的方法:

保持routeProvider一樣的,你可以HTML模板文件移到你的內容插入腳本標記你的index.html像這樣:

<script type="text/ng-template" id="one.tpl.html"> 
//Your html template code goes here 
</script> 
<script type="text/ng-template" id="two.tpl.html"> 
//Your html template code goes here 
</script> 

在你app.js:

$routeProvider. 
     when('/', { 
     templateUrl: 'one.tpl.html', //points to the content of the script tag in your index.html file 
     controller: 'onetplCtrl' 
     }). 
     when('/edit',{ 
     templateUrl:'two.tpl.html', //points to the content of the script tag in your index.html file 
     controller:'twotplCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 
+0

這是我的第一個想法,問題是我在應用程序中使用'run()'方法,在應用程序中起着至關重要的作用。而且我找不到解決方案來使其採用這種方法。 – Reyraa

+0

然後,您可以使用ng-template將特定模板加載到$ templateCache中,這可以像對html文件的正常引用一樣使用,並且可以使用ngRoute將控制器指向此模板,它將與聲明routeProvider中的everythng一樣工作 –

+0

@Reyraa檢查編輯答案 –

相關問題