app.js剖析

来源:互联网 发布:淘宝优惠券赚佣金 编辑:程序博客网 时间:2024/06/07 00:01

您可自由转发此文, 但请保留出处:Ionic在线学习网站  http://www.ioniconline.com

app.js作为功能模块的集合处, 最重要的作用就是负责各个 Angular子功能模块的创建,注册和检索等。


整个集成工作通过angular.module方法得以完成:

语法:angular.module('应用名', [依赖的子模块数组])
实例:angular.module('starter', ['ionic', 'starter.controllers', 'starter.filters', 'starter.routes', 'starter.services', 'starter.directives'])。
需要注意的是,此处的模块定义相当于系统总模块的依赖性定义,并没有真正实现。
  • 'starter':整个app的模块名字。
  • 'ionic' : starter app依赖的ionic模块,在lib下面。
  • 'starter.controllers': starter app依赖的controller模块,真正的模块定义在“controllers.js”文件里面:
    angular.module('starter .controllers', ['ionic'])
  • 'starter.filters': starter app依赖的filter模块,真正的模块定义在“filters.js”文件里面:
    angular.module('starter .filters', ['ionic'])
  • 'starter.routes': starter app依赖的filter模块,真正的模块定义在“routes.js”文件里面:
    angular.module('starter .routes', ['ionic'])
  • 'starter.services': starter app依赖的filter模块,真正的模块定义在“services.js”文件里面:
    angular.module('starter .services', ['ionic'])
  • 'starter.routes': starter app依赖的filter模块,真正的模块定义在“routes.js”文件里面:
    angular.module('starter .routes', ['ionic'])
这些都是通过angular的依赖注入特性得以实现的。

此外,一些设备相关的全局特性设置也需要再app.js里面定义,以便优先加载,如下面例子,定义好了Keyboard以及StatusBar相关的特性:

.run(function ($ionicPlatform) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);

}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});

})

0 0
原创粉丝点击