javascript - 在 Polymer Web 组件中使用 AngularJS

标签 javascript angularjs polymer web-component

我想在 Polymer 网络组件中制作一个小型 Angular 应用。

我写了一个快速测试看看这是否可行:

<link rel="import" href="../../bower_components/polymer/polymer.html">
<script type="text/javascript" src="../../bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="../../bower_components/angular/angular.js"></script>

<polymer-element name="test-component">
  <template>
    <div ng-app="app">
      <div ng-controller="AppCtrl">
        ... {{test}} ...
      </div>
    </div>
  </template>

  <script>
    !function () {
      Polymer('test-component', {
        ready: function () {
          var app = angular.module('app', [])
          app.controller('AppCtrl', function ($scope) {
            $scope.test = 'testing';
          });
        }
      });
    }();
  </script>
</polymer-element>

不幸的是,这不起作用。页面显示... ...而不是 ... testing ... .控制台中未显示任何错误。

我尝试从 ready 中取出 Angular 代码完全钩住 Polymer 函数。 console.log(angular, app)ready正在返回正确的东西,但产生了与以前相同的结果。

我还尝试将 Angular 代码放在模板的最底部,基本上是处理 <template>标记为 <body>标签。这也导致了相同的行为。

是否可以在 Web 组件中使用 Angular?如果可能的话,我希望能够在使用 AngularJS 的同时使用 Web 组件的封装特性(shadow DOM 等)。

最佳答案

截至目前,我在一个非常大的网络应用程序上一起使用 Angular 和 Polymer 没有任何问题,使用了 ng-polymer-elements 的变体。 .

它也有一些有用的测试。

关于javascript - 在 Polymer Web 组件中使用 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105575/

相关文章:

javascript - 无法将组件 Controller 中的对象绑定(bind)到 Angular 1.5 中的 View

javascript - 如何创建标记以按日期(月)对 AngularJS ng-repeat 输出进行分组?

css - Polymer-ui-sidebar-menu 内容如新

css - polymer - 定位造纸厂?

javascript - 如何加入一个数组,结果不是 Javascript 中的字符串?

javascript - 音频文件将无法在javascript switch语句之外运行

javascript - 如何保持滚动条始终在底部?

javascript - AngularJS 指令使输入在回车时响应

angularjs - 在 select 标签中显示部分选项或选项内容的简写

javascript - Polymer 无法在 Chrome 中工作(在 Firefox 中工作)