zoukankan      html  css  js  c++  java
  • angularjs于directive声明scope说明何时以及如何使用对象修饰符

      于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上的属性。可是这属性必须为一个函数回调


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

  • 相关阅读:
    C# 生成windows 服务打包程序
    Ext.Net 复制GridPanel的数据
    The web.config file for this project is missing the required DirectRequestModule.
    微软 Remote App
    IIS 中的虚拟目录 和软连接
    C# 生成word 文档 代码 外加 IIS报错解决方案
    .NET:序列化和反序列化
    设计模式:常见设计模式适用的场景
    WebApi:自定义筛选器
    log4net:保存自定义参数到数据库
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4884982.html
Copyright © 2011-2022 走看看