想象一下,我们使用$routeProvider
为多条路线设置了AngularJs应用程序(在多个控制器,服务,指令和运行方法中)。现在我们需要在一个页面中使用相同的应用程序。这意味着现在应该在一个页面中同时显示不同路径的模板。
我无法使用不同的iframes
,因为从包装应用程序中访问$scope
的{{1}}很难。
如果不使用controllers
s?
答案 0 :(得分:1)
您要找的是ng-include和ng-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: '/'
});