在实施directive
时遇到isolate scope
,我感到困惑,为什么我们必须使用隔离范围而不是scope
。
答案 0 :(得分:0)
使用隔离范围时,指令的范围不会从其父节点原型继承。该指令无权访问父作用域。这为您提供了最高的封装。每当您设计可重用组件时,都应使用隔离范围。
答案 1 :(得分:0)
默认情况下,指令可以访问父作用域。例如,以下指令依赖于父作用域来写出用户对象的名称:
angular.module('myDirective').directive('sharedScope', function () {
return {
template: 'Name: {{user.name}}'
};
});
此代码的问题是您需要有关于父作用域的信息,因此如果父作用域更改了吗?该指令将不再可用。当隔离范围派上用场时就是这样。因此,只要directive
被设计为可重用,就会使用隔离范围。这些是一些很好的博客文章,深入解释了主题