重叠角度应用/使用角度构建第三方小部件

时间:2014-10-14 12:54:28

标签: javascript angularjs

我正在构建一个将加载到多个网站上的第三方窗口小部件。我使用angular进行实现,使用构建脚本包装我的角度,这样它就不会干扰页面上可能使用的任何其他角度。

当我使用自己的自定义指令时,一切正常,但是当我尝试使用ng-show加入加载指示符时,它有时会"没有工作。我跟踪了#34;有时"在已经使用angular"。

的网页上下载到"

当页面插入页面时,页面的角度似乎仍然是数据绑定模板。有什么方法可以让我的dom成为页面角度的禁区吗?

ng-non-bindable似乎可能有用,但如果我使用它,我就无法在它下面进行自举。

2 个答案:

答案 0 :(得分:0)

您需要做的是以编程方式引导角度,而不是使用标记。

    <html>
    <body>
      // other parts of your site
      <div></div>



      // your angular stuff
      <div id='app' ng-controller="MyController">
        Hello {{greetMe}}!
      </div>
    </body>
    </html>



        // your controller
        angular.module('myApp', [])
          .controller('MyController', ['$scope', function ($scope) {
            $scope.greetMe = 'World';
          }]);

        // bootstrap angular programatically/manually
        angular.element('#id').ready(function() {
          angular.bootstrap(angular.element('#id'), ['myApp']);
        });

不要忘记对你不想绑定的部分使用ng-non-bindable

答案 1 :(得分:0)

所以,这就是我所做的,这是令人厌恶的。 我更喜欢一个干净的答案,但这可以保护我的dom免受其他角度实例的影响。

首先,我用ng-non-bindable包装整个dom元素。这可以防止页面级角度干扰它。

然后,我添加了以下内容,改编自AngularJS - how to override directive ngClick

var root = angular.module('rootModule', []);
root.config(function($provide){
    $provide.decorator('ngNonBindableDirective',
        ['$delegate', function($delegate){
            $delegate.shift();
            return $delegate;
        }]);
});

这删除了我的角度实例中ng-non-bindable的实现。因此页面角度将忽略dom,但我的角度不会忽略它。我希望我不必在以后实施ng-non-bindable-really

有人请给我一个干净的答案,让我远离恐惧!