Page 97 - AngularJS权威教程
P. 97
10.2 指令作用域 77
内容请查看第34章。 1
10.1.6 replace(布尔型)
2
replace是一个可选参数,如果设置了这个参数,值必须为true,因为默认值为false。默
认值意味着模板会被当作子元素插入到调用此指令的元素内部: 3
<div some-directive></div>
.directive('someDirective', function() {
return { 4
template: '<div>some stuff here<div>'
};
}); 5
调用指令之后的结果如下(这是默认replace为false时的情况):
6
<div some-directive>
<div>some stuff here<div>
</div>
7
如果replace被设置为了true:
.directive('someDirective', function() { 8
return {
replace: true // 修饰过
template: '<div>some stuff here<div>'
}; 9
});
指令调用后的结果将是: 10
<div>some stuff here<div>
11
10.2 指令作用域
12
为了完全理解指令定义对象中剩下的参数,需要先介绍指令作用域是如何工作的。
$rootScope这个特殊的对象会在DOM中声明ng-app时被创建:
13
<div ng-app="myApp"
ng-init="someProperty = 'some data'"></div>
<div ng-init="siblingProperty = 'more data'"> 14
Inside Div Two
<div ng-init="aThirdProperty"></div>
</div>
15
上面的代码中,我们在应用的根作用域中设置了三个属性: someProperty、 siblingProperty
和anotherSiblingProperty。
16
从这里开始,DOM中每个指令调用时都可能会:
直接调用相同的作用域对象; 17
从当前作用域对象继承一个新的作用域对象;
创建一个同当前作用域相隔离的作用域对象。
18