angularjs于directive声明scope说明什么时候以及如何使用对象修饰符

  于angular咱们定义directive方法。查看javascript

 

return {
    restrict: 'AE',
    scope: {},
    template: '<div></div>',
    link: function() {}
}

除了代码中出现的属性,另外一些其它的属性可供配置,这里不做详述。html

今天咱们要说的重点是scope字段。java


常规使用方法设置函数

scope: {
    name: '=',
    age: '=',
    sex: '@',
    say: '&'
}

若是咱们的hml代码例如如下

<div my-directive name="myName" age="myAge" sex="male" say="say()"></div>

相应的controller部分代码

function Controller($scope) {
    $scope.name = 'Pajjket';
    $scope.age = 99;
    $scope.sex = '我是男的';
    $scope.say = function() {
        alert('Hello,我是弹出消息');
    };
}


那这几种修饰符的含义又是什么呢,他们怎样关联起来的字体

”=“:指令中的属性取值为controller中相应$scope上属性的取值,可用于双向数据的绑定spa

”@“:指令中的取值为html中的字面量/直接量;创建一个local scope property到DOM属性的绑定。因为属性值老是String类型。因此这个值老是返回一个字符串。rest

假设没有经过@attr指定属性名称,那么本地名称将与DOM属性的名称一直。好比<widget my-attr=”hello {{name}}”>,widget的scope定义为:{localName:’@myAttr’}。那么,widget scope property的localName会映射出”hello {{name}}"转换后的真实值。name属性值改变后,widget scope的localName属性也会对应地改变(只单向,与如下的”=”不一样)。name属性是在父scope读取的(不是组件scope)code

”&“:指令中的取值为Contoller中相应$scope上的属性。但是这属性必须为一个函数回调htm


版权声明:本文博主原创文章。博客,未经赞成不得转载。ip

相关文章
相关标签/搜索