如何在 Ionic Framework 中更新 Angular 的版本?

How to update the version of Angular in Ionic Framework?

我在使用 Angular 过滤器时遇到一些问题,每个人都说:是因为您没有使用 angular 1.3.8 或更高版本,我只是通过 [=11 实现了我的版本=] 在控制台上和: Object {full: "1.3.6", major: 1, minor: 3, dot: 6, codeName: "robofunky-danceblaster"} 出现了,那么,我如何至少更新到 1.3.8?或更新到最新版本?

有没有办法做到这一点,或者我必须使用 Angular 的那个版本,直到 Ionic 人员更新它?

ionic.bundle.js 是以下各项的串联:

  • ionic.js
  • angular.js
  • angular-animate.js
  • angular-sanitize.js
  • angular-ui-router.js
  • ionic-angular.js

如果您想使用比捆绑包中包含的版本更新的 AngularJS 版本,您可以将它们与首选版本分开包含(而不是加载 ionic.bundle.js)。

请注意,最新 Ionic 版本中包含的 AngularJS 版本是 is/was 在测试期间使用的版本(我假设)。因此,通过手动包含更新版本的 Ionic 可能会中断。

这就是您需要做的所有事情:

ionic lib update

请参阅有关 Github!

的文档

上面来自@tasseKATT 的优秀 Plunker 中的注意事项:

  • angular 在 index.html 中的版本,例如<script src="https://code.angularjs.org/1.5.0-beta.2/angular.js"></script> 必须 先于 包含 ionic.bundle.js
  • 您可能需要将 https://code.angularjs.org:* 添加到您的 <meta http-equiv="Content-Security-Policy" ...
  • 您可以使用 angular.version
  • 检查您是否已在浏览器控制台中加载所需的版本

如果您使用 Bower 来管理您的包,您不想手动为 angular 添加不同的 <script> 标签。

如果您需要覆盖 angular 版本(并且您正在使用 bower),只需在 bower.json 中添加 angular 作为依赖项,ionic 应该在同一个地方。然后指定版本号。但请注意,正如 tasseKATT 所说,如果您使用与 ionic 预期不同的 angular 版本,它 可能 破坏 ionic 中的内容。

如果您仍想这样做,可以通过两种方式进行。使用 bower 命令行工具或手动。

Bower 命令行:

在您的应用程序的根目录中,您可以执行以下操作,这会将最新版本的 angular 添加到您的 bower.json

bower install angular --save

或手动:

"dependencies": {
  "ionic": "driftyco/ionic-bower#1.2.4",
  "angular": "1.5.0"
}

当然,无论是通过 bower 命令还是手动,请确保现在在 bower.json 中指定的结果版本是您想要的版本。

您可能会发现您需要在 bower.json 中添加一个冲突解决方案来选择您的版本而不是 ionic 建议的版本。但是,正如 tasseKATT 所说,如果您使用的 angular 版本与 ionic 所期望的版本不同,它可能会造成破坏。

Unable to find a suitable version for angular, please choose one:

1) angular#1.4.3 which resolved to 1.4.3 and is required by ionic#1.2.4

2) angular#^1.5.0 which resolved to 1.5.0 and is required by product-picker

3) angular#>= 1.0.8 which resolved to 1.5.0 and is required by angular-ui-router#0.2.13

4) angular#^1.x which resolved to 1.5.0 and is required by angular-local-storage#0.2.5

5) angular#1.5.0 which resolved to 1.5.0 and is required by angular-mocks#1.5.0

6) angular#^1.5.0 which resolved to 1.5.0

然后你选择一个选项,在它前面加上!将分辨率保存到 bower.json,或者只需添加以下内容,并将其更改为您想要的版本:

"resolutions": {
  "angular": "1.5.0"
}

所以现在您的项目会说 "I need angular version X" 然后 Ionic 说我需要一个不同的,但是您在 bower.json 中指定要覆盖的项目。如果您想对此进行更多研究,请查看 bower_components/ionic/bower.json 中的 bower.json 文件(还有一个 .bower.json,不太确定这里的区别。

完成所有操作后,最后一个:

bower update

这会检查是否一切正常并已安装。此时会出现任何其他冲突,您可以使用上述方法解决。