栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

一页中有多个版本的AngularJS

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一页中有多个版本的AngularJS

Angular确实不准备与其他版本共存。但这是可行的。

首先加载角度库,并确保在加载之前

window.angular
为空:

  <script src="vendor/angular/1.2.0/angular.min.js"></script>  <script src="app/app2.js"></script>  <script>    var angular2 = angular;    window.angular = null; // here we're cleaning angular reference  </script>  <script src="vendor/angular/1.0.5/angular.js"></script>  <script src="app/app1.js"></script>  <script>    var angular1 = angular;  </script>

请注意,应在加载角度库后立即加载每个版本的angular的每个应用程序(

app1.js
app2.js
)。

应用程序的每个Javascript文件都应包含在自执行函数中

(function(angular) { ...})(angular)
。看下面的例子
app2.js

(function(angular) {angular.module('myApp2', []).controller('App2Ctrl', function($scope) {    $scope.$watchCollection('[a, b, c]', function() {        console.log(angular.version.full);    });});})(angular);

请注意,我在这里使用

$watchCollection
的仅适用于angular1.2.x。通过为每个文件提供匿名函数的作用域,您将迫使应用程序访问
angular
属性而不是
window.angular
属性。

最后,您必须使用手动方法来引导应用程序:

<body>  <div id="myApp1" ng-controller="App1Ctrl">  </div>  <div id="myApp2" ng-controller="App2Ctrl">  </div>  <script>    angular1.bootstrap(document.getElementById('myApp1'), ['myApp1']);    angular2.bootstrap(document.getElementById('myApp2'), ['myApp2']);  </script></body>

这里工作的家伙。运行后,请检查控制台窗口以查看所用角度的记录版本。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号