angularjs中的directive scope配置
https://docs.angularjs.org/guide/directive
定义directive其中重要的一环就是定义scope,scope有三种形式:
- 默认的scope,DOM元素上原有的scope
scope: false //默认配置
- 创建一个新的scope, 会继承上层的scope,所有的属性都可以访问
scope: true
- 独立的scope,和父scope是隔离的,不会继承任何的属性
scope: {/*属性名和绑定风格*/}
独立scope:{}绑定策略
使用独立scope的时候,如果需要从父scope获取数据,就需要一个新的概念:绑定策略
http://www.cnblogs.com/mafeifan/p/5817626.html
http://www.linuxidc.com/Linux/2015-05/116924.htm
1. 引用传递 双向绑定 =
绑定父scope的属性, 引用类型的绑定,双向绑定
{
name: '=forName',
age: '=age',
sex: '=' /*同名属性绑定的简写方式*/
}
2. 值传递 单向绑定 @
以字符串的方式绑定属性,这其实就是单向绑定
用法和上面的=差不多
3. 函数传递 &
传递一个来自父scope的函数,稍后调用
代码
directive("direct",function(){
return{
restrict: 'ECMA',
template: '<div>指令中:{{ name }}</div>',
scope:{
name:'@forName'
}
}
})
.controller("nameController",function($scope){
$scope.Name="张三";
});
HTML代码:
<div ng-controller="nameController">
<direct for-name="{{ Name }}"></direct>
<div>
4. require中controller的搜索
- ^^表示在所有父元素中搜索
- ^表示在自身和父元素中搜索
- 没有前缀, 只在自身搜索
require: ['^^parentsController', '^parentController', 'ngModel'],