当前位置: 首页 > 面试题库 >

多个Angularjs应用程序(驱动Portlet)

邹胜泫
2023-03-14
问题内容

我有一个用例,需要加载单独的角度应用程序。

基于几个堆栈溢出问题和这个google线程,它是可行的。但是,我无法使其正常工作。

查看文档:

http://docs.angularjs.org/api/angular.bootstrap

看来您需要提供该元素(在该元素上获得句柄的正确方法是什么?),然后如何将其绑定回config,controller等。这如何与路由一起使用?IE碰撞如何工作,即应用程序a和应用程序b分别将/
foo映射到/fooa.html和/foob.html …或每个应用程序描述自己的.otherwise?

谢谢!


问题答案:

因此,鉴于要求将其作为服务驱动的内容,我能看到的唯一方法是在角度和标准html实践之间进行混合。实际上,您需要从通用书籍中提取一页,并使用iframe包含每个单独的portlet。

<!doctype html> <html lang="en">

<body ng-app="plunker" ng-controller="MainCtrl">

<!-- define foo -->

<div>
    <ul class="menu">
        <li><a href="#" ng-click="fooRoute='#/foo1'">foo1</a></li>
        <li><a href="#" ng-click="fooRoute='#/foo2'">foo2</a></li>
    </ul>
    <iframe seamless="true" ng-src="foo.index.html{{fooRoute}}"></iframe> </div>

<div>
    <ul class="menu">
        <li><a href="#" ng-click="barRoute='#/bar1'">bar1</a></li>
        <li><a href="#" ng-click="barRoute='#/bar2'">bar2</a></li>
    </ul>
    <iframe seamless="true" ng-src="bar.index.html{{barRoute}}"></iframe> </div>


<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script> <script src="app.js"></script> </body> </html>

然后,在每个这些Portlet上,您都希望拥有一个完全独立的应用程序(包括资源的加载)。

<!doctype html>
<html lang="en">

<body ng-app="fooApp">

<div ng-view></div>


<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script>
  var app = angular.module('fooApp', ['fooApp.controllers']);

    // Configure the app
    app.config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/foo1', {template: '<h1>Foo</h1><h2>foo1</h2>', controller: 'MyCtrl1'});
        $routeProvider.when('/foo2', {template: '<h1>Foo</h1><h2>foo2</h2>', controller: 'MyCtrl2'});
    }]);

    angular.module('fooApp.controllers', []).
            controller('MyCtrl1', [function () {
                console.log("fooApp.MyCtrl1 invoked.");
            }])
            .controller('MyCtrl2', [function () {
                console.log("fooApp.MyCtrl2 invoked.");
            }]);
</script>
</body>
</html>

与使用通用应用程序库相比,这种方法的加载效率较低,但是目前尚不可行。angular-ui的ui-
router团队中有关于控制独立视图的讨论,这可能对您来说是一个可行的解决方案,但目前尚未实现,您可以在https://github.com/angular-
ui/ui上
关注讨论。-router /
issues / 84和满足您的需求。现在,在https://github.com/angular-ui/ui-
router/issues/160上的ui-
router问题列表上,还有一个专门针对此问题的问题。

此设计的有用插件:http
://plnkr.co/edit/sPoK3I?p=preview



 类似资料:
  • 问题内容: 我想通过JDBC连接到两个不同的Oracle数据库(一个8.0.5.0.0和一个12c)。我确实有两个JDBC驱动程序,它们可以通过简单的“ hello world”应用程序分别成功地连接到相应的DB。下面,我将它们都放在一个Java应用程序中,不幸的是,该应用程序不再起作用(加载了两个驱动程序)。 我已经阅读了这篇文章:从SAMEVENDOR处理多个JDBC驱动程序。提到的选项1可能

  • 我的问题类似于问题多租户应用程序-OneDrive业务API 但我想让我的应用程序从其他不同azure订阅的租户那里访问一个驱动器,有可能吗?我明白,如果我注册我的应用程序并将其标记为多租户,它将允许我在azure订阅中访问租户,但如果我想使用相同的应用程序但在不同的azure订阅中访问租户,怎么办。

  • 问题内容: 因此,我有一个用于MySQL JDBC驱动程序的.jar文件,该文件位于我的库源文件夹下,并且具有以下代码: 但是,它总是给我这个错误: 这是我添加jar文件的方法。我创建了一个lib文件夹,并将jar放入其中,然后在eclipse中配置构建路径,并将lib文件夹中的jar添加到了项目中。 问题答案: 您错过了类路径中的mysql-connector-j jar文件。使用“ java

  • 问题内容: 昨天我遇到了一个大问题。在我当前的项目中,我使用Oracle JDBC的ojdbc6实现进行连接,但是我还需要处理例如oracle 8数据库,而使用此JAR完全不可能。您可能会说我应该使用ojdbc14例如,这在某些测试中是正确的,但是让我们假设以后我将需要处理来自同一供应商的2种数据库,但是我们知道BOTH和我都没有现有的实现需要同时加载它们。相同的接口(而且,不仅是相同的接口,相同

  • 我的目标是使用聚合框架创建一个管道来对我的数据进行分组,然后将这个管道与java驱动程序一起使用。MongoDB v4.0.3 我使用MongoDB Compass创建了以下管道(减少到重要部分): 这导致以下(生成的)Java代码: 集合中$组阶段之前的数据如下所示: $组阶段应返回以下数据结构: 问题所在 Mongo Compass按预期预览了阶段的结果,但使用java驱动程序的阶段的结果非常

  • 我是否正确理解了客户端模式的文档? 客户端模式与驱动程序在应用程序主程序中运行的集群模式相反? 在客户端模式下,驱动程序和应用程序主程序是独立的进程,因此+必须小于计算机的内存? 在客户端模式下,驱动程序内存不包括在应用程序主内存设置中吗?