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'],
posted @ 2016-10-28 10:58  CooMark  阅读(571)  评论(0编辑  收藏  举报