分类: AngularJS

  • JavaScript调用AngularJS的函数/$scope/变量

    使用背景:

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定;

    首先获取AngularJS application:

    方法一:通过controller来获取app

    var appElement = document.querySelector('[ng-controller=mainController]');

    然后在获取$scope变量:

    var $scope = angular.element(appElement).scope();

    如果改变了其中的变量之后,需要在页面表现出来,还需要调用apply()方法:

    $scope.$apply();
    

    方法二:通过DOM操作获取app

    //通过DOM操作获取app对象
    var element = angular.element($document.getElementById("app"));
    //得到app对象,可以获取app的controller
    var controller = element.controller();
    //得到app对象,可以获取app的$scope
    var scope = element.scope();
    //调用$scope中的方法
    scope.sub1();
    //调用方法后,可以重新绑定,在页面同步(可选)
    scope.$apply();
    //调用字段
    scope.field1;

    几个相关函数:

    获取当前元素的$socpe:     angular.element(domElement).scope() to get the current scope for the element
    获取当前app的injector:   angular.element(domElement).injector() to get the current app injector
    获取当前元素的controller:angular.element(domElement).controller() to get a hold of the ng-controller instance.

    参考文章:

    http://segmentfault.com/a/1190000000747708

    http://longqiang.name/2014/12/13/%E5%A4%96%E9%83%A8js%E8%B0%83%E7%94%A8angularjs%E5%86%85%E9%83%A8%E6%96%B9%E6%B3%95/

    作者: ZH奶酪——张贺
    Q Q: 1203456195
    邮箱: cheesezh@163.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • AngularJS入门教程:日期格式化

    • 本地化日期格式化:
      1. ({{ today | date:’medium’ }})May 22, 2016 12:11:11 PM
      2. ({{ today | date:’short’ }})5/22/16 12:11 PM
      3. ({{ today | date:’fullDate’ }})Sunday, May 22, 2016
      4. ({{ today | date:’longDate’ }})May 22, 2016
      5. ({{ today | date:’mediumDate’ }})May 22, 2016
      6. ({{ today | date:’shortDate’ }})5/22/16
      7. ({{ today | date:’mediumTime’ }})12:11:11 PM
      8. ({{ today | date:’shortTime’ }})12:11 PM
    • 年份格式化:
      1. 四位年份:({{ today | date:’yyyy’ }})2016
      2. 两位年份:({{ today | date:’yy’ }})16
      3. 一位年份:({{ today | date:’y’ }})2016
    • 月份格式化:
      1. 英文月份:({{ today | date:’MMMM’ }})May
      2. 英文月份简写:({{ today | date:’MMM’ }})May
      3. 两位数字月份:({{ today | date:’MM’ }})05
      4. 一年中的第几个月份:({{ today | date:’M’ }})5
    • 日期格式化:
      1. 数字日期:({{ today | date:’dd’ }})22
      2. 一个月中的第几天:({{ today | date:’d’ }})22
      3. 英文星期:({{ today | date:’EEEE’ }})Sunday
      4. 英文星期简写:({{ today | date:’EEE’ }})Sun
    • 小时格式化:
      1. 24小时制数字小时:({{ today | date:’HH’ }})12
      2. 一天中的第几个小时:({{ today | date:’H’ }})12
      3. 12小时制数字小时:({{ today | date:’hh’ }})12
      4. 上午或下午的第几个小时:({{ today | date:’h’ }})12
    • 分钟格式化:
      1. 数字分钟数:({{ today | date:’mm’ }})11
      2. 一个小时中的第几分钟:({{ today | date:’m’ }})11
    • 秒数格式化:
      1. 数字秒数:({{ today | date:’ss’ }})11
      2. 一分钟中内的第几秒:({{ today | date:’s’ }})11
    • 毫秒数格式化:
      1. 毫秒数:({{ today | date:’sss’ }})403
    • 字符格式化:
      1. 上下午标识:({{ today | date:’a’ }})PM
      2. 四位时区标识:({{ today | date:’Z’ }})+0800
    • 自定义日期格式化:
      1. 年月日:({{ today | date:’yyyy-MM-dd’ }})2016-05-22
      2. 时分秒:({{ today | date:’HH:mm:ss.sss’ }})12:11:11.403