如何在单个页面中运行多路径角度应用程序

时间:2017-01-20 10:06:20

标签: angularjs

想象一下,我们使用$routeProvider为多条路线设置了AngularJs应用程序(在多个控制器,服务,指令和运行方法中)。现在我们需要在一个页面中使用相同的应用程序。这意味着现在应该在一个页面中同时显示不同路径的模板。

我无法使用不同的iframes,因为从包装应用程序中访问$scope的{​​{1}}很难。 如果不使用controllers s?

,这是否可行?

1 个答案:

答案 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: '/'
      });