范围与隔离范围之间的差异是什么

时间:2015-08-29 10:55:55

标签: angularjs angularjs-scope

在实施directive时遇到isolate scope,我感到困惑,为什么我们必须使用隔离范围而不是scope

2 个答案:

答案 0 :(得分:0)

使用隔离范围时,指令的范围不会从其父节点原型继承。该指令无权访问父作用域。这为您提供了最高的封装。每当您设计可重用组件时,都应使用隔离范围。

答案 1 :(得分:0)

默认情况下,指令可以访问父作用域。例如,以下指令依赖于父作用域来写出用户对象的名称:

 angular.module('myDirective').directive('sharedScope', function () {
    return {
        template: 'Name: {{user.name}}'
    };
});

此代码的问题是您需要有关于父作用域的信息,因此如果父作用域更改了吗?该指令将不再可用。当隔离范围派上用场时就是这样。因此,只要directive被设计为可重用,就会使用隔离范围。这些是一些很好的博客文章,深入解释了主题