于angular我们定义directive方法。查看

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

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

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

常规使用方法设置

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上属性的取值,可用于双向数据的绑定

”@“:指令中的取值为html中的字面量/直接量;建立一个local scope property到DOM属性的绑定。由于属性值总是String类型。所以这个值总是返回一个字符串。

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

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

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

angularjs于directive声明scope说明何时以及如何使用对象修饰符的更多相关文章

  1. angularjs中directive声明scope对象的用法

    总的来说用法 分三种: >1: scope: false  --> 继承父域,实现 双向数据绑定 示例代码 可自测: <!DOCTYPE html> <html lang ...

  2. AngularJS之Directive,scope,$parse

    AngularJS内幕详解之 Directive AngularJS内幕详解之 Scope AngularJS的指令(Directive) compile和link的区别及使用示例 浅谈Angular ...

  3. AngularJS Directive 隔离 Scope 数据交互

    什么是隔离 Scope AngularJS 的 directive 默认能共享父 scope 中定义的属性,例如在模版中直接使用父 scope 中的对象和属性.通常使用这种直接共享的方式可以实现一些简 ...

  4. Angularjs之directive指令学习笔记(二)

    1.Directive的五个实例知道driective作用.其中字段restrict.template. replace.transclude.link用法 参考文章链接地址:http://damoq ...

  5. angularjs的directive详解

    Directive(指令)笔者认为是AngularJ非常强大而有有用的功能之一.它就相当于为我们写了公共的自定义DOM元素或CLASS属性或ATTR属性,并且它不只是单单如此,你还可以在它的基础上来操 ...

  6. 【angularJS】Directive指令

    AngularJS 通过被称为 指令 的新属性来扩展 HTML.指令是扩展的 HTML 属性,带有前缀 ng-. 内置指令 1.ng-app 指令初始化一个 AngularJS 应用程序. 定义了 A ...

  7. AngularJS系统学习之Scope(作用域)

    本文出自:https://www.w3ctech.com/topic/1611 看完了没怎么懂,  也许是和别人 原文作者: Nicolas Bhttps://www.w3ctech.com/topi ...

  8. AngularJS之directive

    AngularJS之directive AngularJS是什么就不多舌了,这里简单介绍下directive.内容基本上是读书笔记,所以如果你看过<AngularJS up and runnin ...

  9. AngularJS clone directive 指令复制

    需求背景:         directive模块化某表单信息,但表单信息可加入多条.此时就涉及到clone directive. 解决方式:         能够通过使用angularjs中$com ...

随机推荐

  1. linux common command.

    Stopping & Starting shutdown -h now – Shutdown the system now and do not reboothalt – Stop all p ...

  2. CTE的使用

    CTE在SQL2005后的版本提供,丰富了查询的表现形式,下面我们慢慢来看下CTE都能干什么 1.自我递归 ;WITH myaa AS ( SELECT num=1 UNION ALL SELECT ...

  3. Hibernate 性能优化之二级缓存

    二级缓存是一个共享缓存,在二级缓存中存放的数据是共享数据特性     修改不能特别频繁     数据可以公开二级缓存在sessionFactory中,因为sessionFactory本身是线程安全,所 ...

  4. ReetrantLock Synchronized Atomic的性能对比

    之前看到了一篇帖子关于Lock和Synchronized的性能,写的是Lock比Synchronized的性能要好,可是,我试了下,结果却不是这样的,我所使用的JDK的版本是1.7,可能跟原帖作者用的 ...

  5. 2.2.2 从 Path 中获取信息

    Demo: import java.nio.file.Path; import java.nio.file.Paths; public class PathInfoTest { public stat ...

  6. js中定义变量加var与不加var的区别?

    var 不一定是用来定义局部变量的 jscript的全局变量和局部变量的分界是这样的:                  过程体(包括方法function,对象Object o ={})外的所有变量不 ...

  7. C语言基础学习运算符-逻辑运算符

    逻辑运算符 逻辑运算符是根据表达式的值来返回真值或是假值.C语言中的逻辑运算符就三种,如下表所示: 列如: 更多学习内容,就在码芽网http://www.mayacoder.com/lesson/in ...

  8. struts2.xml的配置与技巧

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  9. sql 批处理、获取自增长、事务、大文本处理

    批处理 需要批量执行sql语句! 需求:批量保存信息! 设计: AdminDao Public void save(List<Admin list){ // 目前用这种方式 // 循环 // 保 ...

  10. TIOBE.2017.01最新编程语言排行榜

    Jan 2017     Jan 2016     Change     Programming Language     Ratings     Change1    1        Java   ...