zoukankan      html  css  js  c++  java
  • Angular1 Directive开发——scope定义以及directive中的参数获取

    指令中的scope定义有三种:

    1)true

      创建一个子作用域,该作用域原型继承自组件具体使用位置所在的作用域A,因为是原型继承,所以能够得到作用域A中的变化,同时又保留的独立作用域,作用域A无法得到指令作用域中的数据。

    2)false (默认)

      复用组件具体使用位置所在的作用域,这种方式指令强依赖外层作用域,不推荐这种做法

    3)创建一个独立的作用域

      如下:

    scope: {  
         value: '=',
         title: '@?',
         change: '&?'     
    }

      = 用于数据双向绑定,允许对象和值在指令内外直接映射

      @ 用于插入属性,主要用于在指令使用位置向指令内部传人属性值,需要注意的时如果传入对象会被识别为字符串

      & 用于指定回调函数,此时定义为外层作用域一个函数,在指令中可使用这个函数

      ? 表示可填,没有?则表示是必填属性

    • 参数获取

        事实上,在compile或link函数中可以通过attrs参数直接获取指令的属性值。

        自我感觉在这里直接获取的属性而不作为指令scope属性的参数需要具备以下几个特点:

          1)这个属性不在指令模板中使用

          2)这个属性传递的是值,而不是外层组件中的变量

          3)这个属性在指令中不会被修改

  • 相关阅读:
    hdu 5101 Select
    hdu 5100 Chessboard
    cf B. I.O.U.
    cf C. Inna and Dima
    cf B. Inna and Nine
    cf C. Counting Kangaroos is Fun
    Radar Installation 贪心
    spfa模板
    Sequence
    棋盘问题
  • 原文地址:https://www.cnblogs.com/yiyitong/p/6222751.html
Copyright © 2011-2022 走看看