安古拉杰指导范围介绍
每当创建一个指令时,都有一个选择,是继承它自己的父作用域(通常是外部控制器或$rootScope提供的作用域),还是创建一个自己的新作用域。当然,AngularJS为我们指令的作用域参数提供了三种选择,即:false、true、{ };默认情况下为False。
1.scope=false
JS代码:
Html代码:
结果:
如果您修改文本框的内容,两个名称都将更改。事实上,您可以修改同一个$scope的name属性。
2.范围=真
修改上面的JS代码,将指令中的:scope:false改为scope:true
然后我们试着在我们的输入框里面写一些字符串,发现指令里面的名字变了,但是指令外面的名字没有变,这就说明了一个问题。
当我们将作用域设置为true时,我们创建了一个新的作用域,但是这个作用域继承了我们的父作用域。我想可以理解为我们新创建的作用域是一个新的作用域,但是在初始化时,我们使用父作用域的属性和方法来填充我们的新作用域。它与父范围不是同一个范围。当我们将作用域设置为false时,我们创建的指令与父作用域共享同一个模型(实际上是同一个作用域),因此如果在指令中修改了模型数据,它将反映在父作用域的模型中。
3.作用域={}
当我们将作用域设置为{}时,这意味着我们创建了一个与父作用域隔离的新作用域,这使我们能够在不知道外部环境的情况下正常工作。
JS代码:
Html代码:
结果:
修改文本框的内容只有指令中的名称会被修改。
scope: {@=}
@这是使用单项绑定方法的前缀标识符:在元素中使用属性,比如这个div my-directmy-name=' { { name } } '/div。请注意,属性的名称应该与-连接,因为它是数据的单个项目绑定,所以应该使用{{}}绑定数据。
=这是一个双向数据绑定前缀标识符使用方法:在元素中使用属性,就像这个div my-directive age='age'/div。请注意,数据的双向绑定是通过=前缀标识符实现的,因此不能使用{{}}。
这是一个前缀标识符使用方法的绑定函数方法:在元素中使用属性,就像这个div my-directive change-my-age=' change age()'/div。请注意,属性的名称应该通过-。
以上就是边肖带来的angularJs指令范围(Scope)的全部内容。希望大家多多支持我们~
版权声明:安古拉杰指导范围介绍是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。