zoukankan      html  css  js  c++  java
  • Angular指令一

        Angular指令一
       
       通过AngularJS模块API中的 .directive() 方法,我们可以通过传入一个字符串和一个函数来 注册一个新指令。其中字符串是这个指令的名字,指令名应该是驼峰命名风格的(除了第一个单词外其他单词首 字母大写,中间不加空格),函数应该返回 一个对象。
     
    指令内容:
     
      restrict 四种格式:元素(E)、属性(A)、类(C)或注释(M);
          scope:{   }独立隔离作用域,作用域之间不影响,意味着指令有了一个属于自己的 $scope 对象,这个对象只能在指令的方法中或指令的模板字符串中使用;
          controller:function(){} 指令可以有它自己的控制器指令内部创建方法给外部指令引用;
          link里面写指令内部的事件;
     
    scope的绑定策略
     
          @   把当前属性作为字符串传递。还可以绑定来自外部scope的值,在属性值中插入{{}}即可。当作用域中属性私有时@someAttr;
     
    <div my-directive  my-url="http://google.com" my-link-text="Click me to go to Google"></div>
    angular.module('myApp', [])
    .directive('myDirective', function() {
        return {
        restrict: 'A',
        replace: true,
        scope: {
            myUrl: '@', //绑定策略
            myLinkText: '@' //绑定策略
            },
            template: '<a href="{{myUrl}}">' +
            '{{myLinkText}}</a>'
        };
    });

    结果如图

     
      =    与父scope中的属性进行双向绑定;
    <label>Their URL field:</label>
            <input type="text" ng-model="theirUrl">
            <div my-directive some-attr="theirUrl" my-link-text="Click me to go to Google"></div>
    angular.module('myApp', [])
    .directive('myDirective', function() {
        return {
        restrict: 'A',
        replace: true,
        scope: {
        myUrl: '=someAttr', // 经过了修改
        myLinkText: '@'
        },
        template: '
        <div>
        <label>My Url Field:</label>
        <input type="text"
        ng-model="myUrl" />
        <a href="{{myUrl}}">{{myLinkText}}</a>
        </div>'
        };
    });

    结果如图

      &  传递一个来自父scope的函数,稍后调用;
     




      
  • 相关阅读:
    Android开发使用的常见第三方框架汇总
    15 个 Android 通用流行框架大全(归类)
    android布局属性大全
    Android 开源项目分类汇总
    有哪些 Android 大牛的 blog 值得推荐?
    Android Activity 知识点全面总结
    android知识点大总结
    自动生成fbi代码网站
    androidstudio 快捷键设置以及导入快捷键模版
    Android Studio调背景颜色
  • 原文地址:https://www.cnblogs.com/xiaoluoli/p/6093460.html
Copyright © 2011-2022 走看看