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



  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/qianmojing/p/6129824.html
Copyright © 2011-2022 走看看