angularjs中的directive scope配置

angularjs中的directive scope配置

https://docs.angularjs.org/guide/directive

定义directive其中重要的一环就是定义scope,scope有三种形式:

  1. 默认的scope,DOM元素上原有的scope
scope: false  //默认配置
  1. 创建一个新的scope, 会继承上层的scope,所有的属性都可以访问
scope: true
  1. 独立的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'],
上一篇:解决Win7下打不开chm文件的方法


下一篇:wm面试记录