zoukankan      html  css  js  c++  java
  • angularjs 的笔记

    angular.copy()深拷贝

    angular提供了一个可以复制对象的api——copy(source,destination),它会对source对象执行深拷贝。

    使用时需要注意下面几点:

    • 如果只有一个参数(没有指定拷贝的对象),则返回一个拷贝对象
    • 如果指定了destination,则会深拷贝对象复制给destination
    • 如果source是null或者undefined,那么会直接返回source
    • 如果source就是desitination,那么会报错。

    angular.equals()比较对象

    AngularJS中的angular.equals()方法用于比较两个对象、值或表达式是否相等。AngularJs文档中对equals方法比较的原则是这样描述的:

    (1)比较的两个对象或值能够通过 === 表达式。===要求两个值不仅值相同,类型也要相同,也就是说,1 === “1”是不成立 的。

    (2)比较的两个对象或值是相同类型的,而且它们所有的属性通过angular.equals()方法判断都是相等的。

    (3)两个值都为(NaN)。(在JavaScript中认为NaN == NaN是false)

    (4)两个值代表字面上相等的表达式,如两个正则表达式:/abc/与/abc/是相等的。

    angular $apply()

    $apply方法传播Model的变化。

    那我们到底什么时候需要去调用apply()方法呢?情况非常少,实际上几乎我们所有的代码都包在scope.apply()里面,像ng−click,controller的初始化,http的回调函数等。在这些情况下,我们不需要自己调用,实际上我们也不能自己调用,否则在apply()方法里面再调用apply()方法会抛出错误。如果我们需要在一个新的执行序列中运行代码时才真正需要用到它,而且当且仅当这个新的执行序列不是被angular JS的库的方法创建的,这个时候我们需要将代码用scope.apply()包起来。

    我是这样理解的该函数用于更新view的value,当需要变更view values时,需要调用该方法。典型地,这个函数由DOM的事件处理函数来调用。

    比如,一个input directive在当它的input变更时就会调用$setViewValue,再比如:select控件在当一个option被选择时也会调用这个函数更新view value。

    • $render();

    当视图需要更新的时候会被调用。使用ng-model的指令应该自行实现这个方法。

    • $isEmpty(value);

    该方法用于判断输入值是否为空。 
    例如,使用ngModelController的指令需要判断其中是否有输入值的时候会使用该方法。该方法可用来判断值是否为undefined,'',null或者NaN。 
    你可以根据自己的需要重载该方法。

    • $setValidity(validationErrorKey, isValid);

    该方法用于改变验证状态,以及在控制变化的验证标准时通知表格。 
    这个方法应该由一个验证器来调用。例如,一个解析器或者格式化函数。

    • $setPristine();

    该方法用于设置控制到原始状态。 
    该方法可以移除'ng-dirty'类并将控制恢复到原始状态('ng-pristine'类)。

    • $cancelUpdate();

    该方法用于取消一次更新并重置输入元素的值以防止$viewCalue发生更新,它会由一个pending debounced事件引发或者是因为input输入框要等待一些未来的事件。

    • $setViewValue();

    该方法用于是为了在指令中改变ng-model绑定的值,适用于使用了独立作用域的指令(在没有双向绑定属性的情况下,无法通过scope进行赋值)。

      .run()

      run方法用于初始化全局的数据,仅对全局作用域起作用。
      只执行一次,缓存起来

     .link:function(scope,elm.attrs ,ctrl){}

      scope:输出一个作用域,这个作用域是由Controller决定的,如果没有定义,是空值。

      elm:输出一个元素数组,数组中的每个元素是调用directive的DOM树

      attrs:输出一个Object, Object内是该DOM元素的各种属性方法

      ctrl:输出一个Object,是对应的controller



  • 相关阅读:
    osg 自定义图元
    osg model
    Qt 获取键盘输入
    TensorFlow Object Detection API —— 测试自己的模型
    labelimg data
    Qt 自定义信号SIGNAL
    qt ui
    QPixmap QImage 相互转化
    QString std::string 相互转 含中文
    ubuntu 安装百度云客户端
  • 原文地址:https://www.cnblogs.com/qianmojing/p/6129824.html
Copyright © 2011-2022 走看看