`
smiky
  • 浏览: 257711 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

isolate scope与scope的区别

 
阅读更多

普通的$scope可以获取到父类的属性,如同prototype继承一样

isolate $scope则只能找到它自己的属性

原理很简单:$scope将prototype直接指向了其父$scope,而$scope没有,居然其它的属性是一样的,但是在进行属性查找时是有分别的。

在$rootScope中:
$new: function(isolate, parent) {
        var child;

        parent = parent || this;

        if (isolate) {
          child = new Scope();
          child.$root = this.$root;
        } else {
          // Only create a child scope class if somebody asks for one,
          // but cache it to allow the VM to optimize lookups.
          if (!this.$$ChildScope) {
            this.$$ChildScope = function ChildScope() {
              this.$$watchers = this.$$nextSibling =
                  this.$$childHead = this.$$childTail = null;
              this.$$listeners = {};
              this.$$listenerCount = {};
              this.$id = nextUid();
              this.$$ChildScope = null;
            };
            this.$$ChildScope.prototype = this;
          }
          child = new this.$$ChildScope();
        }
        child.$parent = parent;

 

分享到:
评论

相关推荐

    AngularJS全局scope与Isolate scope通信用法示例

    然而,Isolate Scope并不遵循这个规则,它虽然有父Scope,但不参与原型链继承,而是通过明确的绑定来与父Scope交互。 Isolate Scope提供了三种不同的引用修饰符: 1. `=` 或 `=attr`:双向绑定。Isolate Scope中的...

    AngularJS中isolate scope的用法分析

    在AngularJS中,isolate scope是一种特殊的scope类型,它的主要目的是为了实现指令(directive)的封装和隔离,防止指令内部的scope与父级controller或其它指令的scope产生直接的依赖关系,确保数据交互的安全和可...

    AngularJs14-16

    在给定的资源中,我们有两个关于AngularJS的视频教程,分别涵盖了"Directives Talking to Controllers"和"Understanding Isolate Scope"这两个关键概念。 1. **AngularJS指令与控制器通信** (AngularJS - 14 ...

    Angular 案例

    #### 六、AngularJS 全局Scope与Isolate Scope通信 1. **Scope作用域**:AngularJS中的作用域可以分为全局作用域(`$rootScope`)和局部作用域(通过指令定义的子作用域)。 - **全局作用域**:所有的局部作用域...

    Google V8 引擎文档

    v8::Isolate::Scope isolate_scope(isolate); v8::HandleScope handle_scope(isolate); v8::Local<v8::Context> context = v8::Context::New(isolate); v8::Context::Scope context_scope(context); std::...

    Google V8学习手记,月javascript写服务器端是多少人的梦醒呀,Google v8让javascript和php一样

    v8::Isolate::Scope isolate_scope(isolate); v8::HandleScope handle_scope(isolate); // 创建一个新的上下文 v8::Local<v8::Context> context = v8::Context::New(isolate); v8::Context::Scope context_...

    chrome v8 vs2010编译指导及 helloworld测试工程

    v8::HandleScope scope(isolate); v8::Local<v8::Context> context = v8::Context::New(isolate); v8::Context::Scope context_scope(context); v8::Local<v8::Script> script = v8::Script::Compile( v8::...

    angularjs指导手册

    深入学习AngularJS的指令,了解如何创建自定义指令,使用 isolate scope、transclusion 和 compile 阶段等高级特性,能够极大提升开发复杂交互和组件的能力。 总结,AngularJS指导手册涵盖了这个框架的各个方面,...

    【ZNS】 AngularJS全套精讲课程

    - isolate scope:理解并应用隔离作用域。 7. **测试与调试** - 单元测试:使用Karma和Jasmine进行AngularJS组件的单元测试。 - 调试技巧:掌握有效的AngularJS代码调试方法。 8. **最佳实践与性能优化** - ...

    Egghead_Tutorial:Egghead 的 Angular 教程

    Angular 教程 Egghead 动画片深拷贝对象指示元素指令属性指令基本的jQuery 高级jQuery 与 Ctrl 进行指令对话指令与指令对话隔离范围 & 隔离作用域@ Isolate Scope =(双向绑定) HTTP http q_all routeProvider...

    AngularJS指令与指令之间的交互功能示例

    1. **独立作用域(Isolate Scope)** 在AngularJS中,每个指令可以有自己的作用域,这被称为独立作用域。默认情况下,指令之间共享同一个父级作用域,但有时我们需要为每个实例创建独立的作用域,以防止数据污染或...

    AngularJS实现自定义指令与控制器数据交互的方法示例

    在这个例子中,由于没有特别指定隔离作用域(Isolate Scope),指令使用的是父控制器的作用域,也就是yyHelloController。因此,yyHello指令中的name属性实际上是与yyHelloController控制器中的name属性绑定的。 ...

    AngualrJS中的Directive制作一个菜单

    5. `scope: { highlightClassName: '@' }` 创建了一个新的 isolate scope,并且`highlightClassName`绑定到父作用域的属性值,这里的`@`表示我们期望的是一个字符串值。 通过这种方式,我们可以把菜单高亮的逻辑...

    thinkster-directive:角度基础-指令

    - ** isolate Scope **:通过设置`scope: true`,可以创建一个隔离的作用域,防止指令之间不必要的数据污染。 - **邓巴数(邓巴数限制)**:一个指令应该尽可能单一职责,遵循邓巴数原则,避免创建过于复杂的指令。...

    addon-example:通过直接使用实现的nodejs插件示例

    为所有在当前scope中执行的操作设置执行某些。 手柄范围 管理local handles的生命周期。 功能模板 创建了运行时函数的模板,在一个Context中,只能有一个Function从模板中创建出来。可以在FunctionTemplate上设置...

    js调用c++函数,c++调用js函数(非mfc)

    v8::HandleScope scope(isolate); // 创建JavaScript上下文和全局对象 v8::Local<v8::Context> context = v8::Context::New(isolate); context->Enter(); // 注册JavaScript函数 v8::Local<v8::FunctionTemplate> ...

    详解Angularjs 自定义指令中的数据绑定

    隔离作用域(isolate scope)使指令内部的数据和父作用域隔离,这样做的好处是避免了指令内部的修改影响到父作用域,或者父作用域的数据变化影响到指令内部。在隔离作用域中,指令开发者可以明确指定哪些属性应该...

    angular-directives:使用角度指令创建Web组件

    4. **指令的隔离作用域**(isolate scope): 使用`scope: { ... }`来创建一个与父作用域隔离的子作用域,可以用于避免数据污染和复杂数据绑定。 5. **指令的优先级**: AngularJS中的指令有优先级概念,数字越大...

Global site tag (gtag.js) - Google Analytics