默认情况规则:A、子级中没有对应数据,会去父级查找数据。
B、子级和父级使用的是同一个$scope数据,子级父级如果同时存在数据相同,父级会被子级数据所替代掉,子级若不存在,则会使用规则A到父级查找后使用。
C、对作用域内的作用与当前的某一级数据进行相对应的更改,子级和父级都会更改。
对默认规则的更改可以使用scope关键字来修改,可以接受两种类型参数;
参数1:可以接收布尔值作为参数,false:表示对默认规则不做更改。true:又可以分情况讨论;一、当子级父级都存在的时候,互不影响,各自独立工作。二、如果当子级不存在时,第一次打开页面时,会首先使用父级的的数据,而且父级更改操作,子级也会对应更改。然后对子级进行第一操作后,就会动态为子级创建了一个作用域,此时scope操作数起作用,和父级就不在相关联,对子级的操作也不会影响到父级。三、但是,父级如果不存在,却不会去子级查找数据,默认就会为空,而且对父级的操作,对子级也不会有影响。相互独立。
参数2:{},用一个空对象来隔离作用域。子级和父级不在相互受到任何影响。
对象的内部可以传递参数,修饰符‘@’:A:@修饰符可以实现子级无定义数据的情况下,突破规则的限制,用插值语法实现和父级共享参数。借用到父级的数据。但需要注意的是子级被传递过来数据后,自身发生的增删操作,不会影响到父级。B:子级在定义了数据的情况下,而在标签内使用了插值语法,依然拥有外界传参的优先级,而不会显示自定义的数据。和scope:true类似。
修饰符“=”:=修饰符取消了@修饰符的插值语法,而直接使用赋值的方式,也是=本身来进行传参。使用了=修饰符,子级和父级之间会互相影响,和scope:false时类似。
修饰符“&”:用于传递方法;
定义标签 指定修饰符 父级定义方法 传递方法其传递规则需要主要几点:子级自己定义方法后,外界的传递方法会被取消,而传递子级的方法。
网友评论