Angularjs中的范围
我试图理解angularjs中的范围 比如说,在angularjs中注册指令时,如果我们不提供任何作用域作为对象的属性,那么对象的作用域是什么Angularjs中的范围,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我试图理解angularjs中的范围 比如说,在angularjs中注册指令时,如果我们不提供任何作用域作为对象的属性,那么对象的作用域是什么 例如考虑下面的代码:-< /P> app.directive("kid", function() { return { restrict: "E", template: '<input type="text" ng-model="chore"> {{chore}}' }; }); app.directive(“kid”,functi
例如考虑下面的代码:-< /P>
app.directive("kid", function() {
return {
restrict: "E",
template: '<input type="text" ng-model="chore"> {{chore}}'
};
});
app.directive(“kid”,function()){
返回{
限制:“E”,
模板:“{{chore}}”
};
});
现在假设我的html中有2个元素:-
<kid></kid>
<kid></kid>
那么,上述内容如何最终共享相同的范围呢?我还没有找到令人信服的答案。是的,因为您没有声明指令的任何
范围
选项,它将共享相同的范围
这是
现在来谈谈问题,什么是范围对象?
Angular中的scope
对象没有上下文信息,可在html
上使用,也可用于提供双向绑定。基本上,作用域与一些控制器绑定在一起
对于指令范围
,如果未在指令中提及范围
属性,则表示指令共享放置指令元素的控制器的范围
要将它们视为每个指令的不同作用域
,可以创建一个具有独立作用域的指令,当您在指令中定义作用域:{}
时,可以使用指令中的作用域:{}
来定义该指令,它使用$scope.$new(true)
方法创建一个独立的子作用域,该子作用域不是典型地从父作用域继承的
对于隔离作用域,您的问题是关于作用域继承和隔离作用域 如果在指令对象上声明一个scope属性,则该指令有自己的隔离作用域 如果未在指令对象上声明scope属性,则指令将继承它在其中实例化的作用域的作用域 因此,对于没有声明隔离作用域的kid指令的定义,下面代码示例中的kid指令都继承了它们在其中实例化的控制器的作用域
<div ng-controller="myCtrl">
<kid></kid>
<kid></kid>
</div>
范围是指应用程序模型的对象。它是表达式的执行上下文。作用域按层次结构排列,模仿应用程序的DOM结构。作用域可以监视表达式和传播事件 范围特征
你似乎把孤立作用域理解为一个概念,但你的英语给大量的误解留下了空间。也许重写得更仔细一点。我确实开始编辑你的答案,但发现自己完全重写了,所以我只添加了一个我自己的答案。