Ionic 坑总结

1 离线gradle构建

  http://stackoverflow.com/questions/29874564/ionic-build-android-error-when-download-gradle

myApp/platforms/android/cordova/lib/builders/GradleBuilder.js.

paste it in somewhere likes myApp\platforms\android\gradle\gradle-2.2.1-all.zip

 var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.zip';


2 bower的安装及命令使用

https://segmentfault.com/a/1190000000349555


3 如果一个page有多个view需要使用:

views:{
  'side-content':{
    templateUrl:'template/content1.html',
    controller:'content1Ctrl'
  }
}

如果slidemenu替换content后无法自动滑动,重写滑动事件on-swipe-right on-swipe-left,然后通过

$ionicSideMenuDelegate控制展开与否。

4 无法替换slidemenu的content内容的话,需要替换的位置有误

<ion-side-menu-content>
    <ion-nav-view name="side-content"></ion-nav-view>

</ion-side-menu-content>

5 控制器间数据的传递与接收

  • emit只能向parent controller传递event与data
  • $broadcast只能向child controller传递event与data
  • $on用于接收event与data
一般在app.js中控制器的继承关系已经明了

例如:

.state('slidmenu.content1',{
父控制器:slidmenu

子控制器:content1


6 $q    promise 使用

见workspace-TestAngular   中 demo-Promise


7 页面间跳转传值

  • 在app.js中配置参数,目标页面规定接受的参数:$stateProvider.state('page2', {params: {'data': null}});

  • 传参:$state.go('page2', {data: 'aaa'});

  • 目标页面控制器中接受参数:控制器注入$stateParams之后可以通过$stateParams.data来获取‘aaa’


    8 AngularJS 一次技术绑定(onetime bindings)

  • http://www.html-js.com/article/Using-Angular-to-develop-web-application-of-AngularJS-13-in-onetime-data-binding-onetime-bindings

  • 为了解决某些dom元素只更新一次即可,不用每次都更新,可以使用::进行一次技术绑定,提高效率,否则,每次都去检查回调,效率会降低。

    • <p>Hello {{::name}}!</p>

    9 angular ---for each既可以遍历数组也可以遍历对象的key和value

  • 见 workspace-testAngular


    10 避免混淆出错的时候容易出现的问题:

    顺序得一致  $state','$scope','$stateParams',function ($state,$scope,$stateParams) 否则有问题
  • 
    
  • 11 angularJS translate使用
  • 见http://www.tuicool.com/articles/zeymimB
  • http://zhenghaoju700.blog.163.com/blog/static/13585951820152236200650/
    
  • 引入库文件
  • bower install angular-translate --save
    bower install angular-translate-loader-static-files --save
  • 添加依赖
    var app = angular.module('myApp', ['pascalprecht.translate']);
  • 普通配置方式
  • app.config(function($translateProvider) {
      $translateProvider.translations({
        "headline": "Hello there, This is my awesome app!",
        "intro": "And it has i18n support!"
      });
    });
  • 使用本地文件配置
  • $translateProvider.useStaticFilesLoader({
        prefix: 'lib/locale/',
        suffix: '.json'
    });
    $translateProvider.preferredLanguage('cn');

  • 使用
  • <p class="light">{{'TEST' | translate}}</p> -----页面作为filter使用
    <pre class="light" translate="TEST"></pre>  -------作为指令使用

  • 12 ngCordova使用
  • http://www.ionic.wang/ng_cordova-index.html


  • 13 src绝对路径

    相对路径:src="img/icon_co2.png"
    绝对路径:src="http://www.example.com/a.png"
    需要注意绝对路径
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值