zoukankan      html  css  js  c++  java
  • 【前端】牛客练题积累——AngularJS

    AngularJS方面:

    每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{};默认情况下是false

    当把scope属性设置为true时,这表明我们创建的指令要创建一个新的作用域,这个作用域继承自我们的父作用域。

    当我们将scope设置为false的时候,我们创建的指令和父作用域(其实是同一个作用域)共享同一个model模型,所以在指令中修改模型数据,它会反映到父作用域的模型中。

    scope:{}这个属性会创建一个独立的作用域,而且也不会继承父作用域.

    注:在子scope中,使用$parent.parentScopeProperty。这将阻止子scope创建它自己的属性,可以直接修改父作用域的属性。

    编译三阶段:
    1. 标准浏览器API转化
    将html转化成dom,所以自定义的html标签必须符合html的格式
    2. Angular compile(绑定dom)
    搜索匹配directive,按照priority排序,并执行directive上的compile方法
    3. Angular link(数据绑定)
    执行directive上的link方法,进行scope绑定及事件绑定

    angular js中control间通信最好使用广播的方式

    发送消息: $scope.$emit(name, data) 或者 $scope.$broadcast(name, data);

    接收消息: $scope.$on(name,function(event,data){ });

    区别: $emit 广播给父controller   $broadcast 广播给子controller

    broadcast 是从发送者向他的子scope广播一个事件。

    $emit 广播给父controller,父controller 是可以收到消息

    $on 有两个参数function(event,msg)  第一个参数是事件对象,第二个参数是接收到消息信息

    then()方法返回一个Promise。它有两个参数,分别为Promise在 success 和 failure 情况下的回调函数。 p.then(function(value) {
       // 满足
      }, function(reason) {
      // 拒绝
    });

    promise模式在任何时刻都处于以下三种状态之一:未完成(unfulfilled)、已完成(resolved)和拒绝(rejected)。
  • 相关阅读:
    atom编辑器中编辑C代码调用printf函数打印中文字符出现乱码
    C 库函数
    函数原型、函数声明和函数定义之间关系
    函数指针
    const 类型限定符
    AttributeError: 'str' object has no attribute '__buffer__'
    python3继承中发生的显式覆盖
    python3中的隐式继承
    黑科技
    理解jquery的$.extend()、$.fn和$.fn.extend()
  • 原文地址:https://www.cnblogs.com/lww930/p/5829519.html
Copyright © 2011-2022 走看看