代码之家  ›  专栏  ›  技术社区  ›  Raptor Jesus

在jquery应用程序中包含angularJS应用程序

  •  1
  • Raptor Jesus  · 技术社区  · 8 年前

    我有两个应用程序,一个角度应用程序和一个jquery应用程序。我想用jQuery加载我的角度应用程序。这是我的代码(非常简单):

    索引.html

    <html>
      <head>
        <title></title>
        <script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script>
      </head>
      <body>
        <div id="div1"></div>
        <script>
           $("#div1").load("public/angular.html");//load angular app
        </script>
      </body>
    </html>
    

    public/angular.html

    <!DOCTYPE html>
    <html ng-app="myApp">
      <head>
        <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
        <script src="public/app.js">
      </head>
      <body ng-controller="MyController">
        <h1>{{message}}</h1>
      </body>
    </html>
    

    公共/app.js

    angular.module("myApp", []);
    
    angular.module("myApp").controller('AppController', function($scope){
        $scope.message = "Hi everyone !";
    });
    

    有可能做到吗?这是一种正确的方法吗?

    谢谢你的回复!

    2 回复  |  直到 7 年前
        1
  •  1
  •   abdoutelb    8 年前

    您需要手动执行角度引导,而不是使用ng-app 在中选中手动初始化 here

        2
  •  1
  •   Raptor Jesus    8 年前

    谢谢Abdou,你说得对!这就是答案!

    索引.html

    <!DOCTYPE html>
    <html>
      <head>
        <title></title>
        <script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
      </head>
      <body>
        <div id="div1"></div>
        <script>
            $("#div1").load("public/angular.html");//load angular app
        </script>
      </body>
    </html>
    

    public/angular.html

    <html>
      <body>
        <div ng-controller="MyController">
          Hello {{greetMe}}!
        </div>
    
        <script>
          angular.module('myApp', []).controller('MyController', ['$scope', function ($scope) {
            $scope.greetMe = 'World';
          }]);
    
          angular.element(document).ready(function() {
           angular.bootstrap(document, ['myApp']);
          });
        </script>
      </body>
    </html>