angular的自定义属性

 一、 首先是自定义模板,

var app=angular.module(‘myapp‘,[]);

  二、然后用自定义的模板去创建自己的指令,千万注意写法,虽然和创建控制器有点像但是没有等号,

app.directive(‘myBtn‘,[function(){ return{}}])

  注意点:1,括号前面没有等号 2、第一个参数是自定义指令的名字 3、第二个参数是一个匿名函数,其中记得要有return返回值。

 三、返回的参数

  template:html代码

templateUrl:id值
 <script id="tpl" type="text/ng-template">
      <div class="flag">
        <p>{{msg}}</p>
        <button class="{{mystyle}}" ng-transclude>登陆</button>
      </div>
  </script>

这里的id值链接到script的id值注意修改type属性
这种方法为推荐写法restrict:"ECA"这里的意思是设定的指令何时可用:元素,class,属性transclude:true/fasle这个的意思是可以自定义输入true为可以false为不可以replace:true/false这个的意思是否可以替换有该指令的元素scope:{  mystyle:‘@‘}mystyle可以任意命名,@为固定写法,它的作用就是粘合模板中的mystyle和页面的mystylelink:function(scope,element,attribute){  scope.msg=‘我是中国人‘  element.on(‘click‘,function(){  alert(‘hello‘)  console.log(‘attribute‘)})这里的link是关联自定义指令内部的数据。这个msg在模板中可以直接使用。而element和attribute是对msg而言的

}

  完整代码如下

app.directive(‘myBtn‘, [function(){
      // 在这里直接return 一个对象就可以了
      return {
        // template属性,是封装的ui
        // template:‘<div><button>我是按钮</button></div>‘,
        // A.作用也是提供字符串,对应的内容会被添加到自定义指令所在位置
        // 值是一个html文件所在位置
        // B. 值也可以是一个script标签的id
        // templateUrl:‘./01.template.html‘
        templateUrl:‘tpl‘,
        restrict:‘ECA‘,  // Attribute  Class  Element
        // 取代,替换
        // replace: true, // 为true时,会把模板中的内容替换到自定义上。
        // 为true时会把自定义标签中间的内容,插入到指定的模板中
        transclude: true,
        // 可以得到自定义指令的属性
        scope:{
          // @开头,表示要获取自定义指令属性的值,
          // 在对应的模板可以直接使用{{tmp}} 来得到mystyle对应的值
          // tmp:‘@mystyle‘
          mystyle:‘@‘ // 这是上一行的简写
        },

        // 指定一个function
        link:function(scope,element,attributes){
          // 参数:
          // scope: 类似于控制器时里的$scope,但是这里的scope属性值是在模板中使用的.
          scope.msg="我是中国人,我爱自己的祖国!"
          // element : 指向模板最外层的对象
          // 如果replace为true,指向的就是自定义指令所在标签
          console.log(element)
          element.on(‘click‘,function(){
            alert(‘你点我了!‘)
          })
          // attributes : 这个对象里的属性就是自定义指令所在标签的属性
          console.log(attributes)
          // angular.element
           console.log(‘link‘)
        }
      }
    }])

    html的代码如下

<body ng-app="directiveApp">
  <h1>以属性形式使用: A</h1>
  <div my-btn test="小明" age="18"></div>
  <h1>以样式名形式使用: C</h1>
  <div class="my-btn"></div>
  <h1>以自定义标签形式使用: E</h1>

  <my-btn mystyle="login">
  注册!!!
  </my-btn>

  <my-btn mystyle="register">
  注册!!!002
  </my-btn>
时间: 2024-06-13 16:03:30

angular的自定义属性的相关文章

Angular 2 属性指令 vs 结构指令

Angular 2 的指令有以下三种: 组件(Component directive):用于构建UI组件,继承于 Directive 类 属性指令(Attribute directive):  用于改变组件的外观或行为 结构指令(Structural directive):  用于动态添加或删除DOM元素来改变DOM布局 组件 import { Component } from '@angular/core'; @Component({       selector: 'my-app', // 

走进AngularJs(一)angular基本概念的认识与实战

一.前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,作为一名业界新秀,紧跟时代潮流,学习掌握新知识自然是不敢怠慢.当听到AngularJs这个名字并知道是google在维护它时,便一直在关注,看到其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏.朝思暮想良久,决定深入学习angular,并写系列博客,一方面作为自己学习路程上的记录,另一方面也给有兴趣的同学一些参考. 首先我自己是一名学习者,会以学习者的角度来整理我的行文思路,故该系

Angular概念纵览

Conceptual Overview Template(模板): HTML with additional markup (就是增加了新的标记的HTML) Directive(指令): extend HTML with custom attributes and elements (给HTML增加自定义属性和元素) Model(模型): the data shown to the user in the view and with which the user interacts (与用户交互

angular

AngularJS--自定义指令和模板 一.自定义指令: 1. 先创建模块    var app=angular.module("myApp",[]); 2. 创建自定义指令 (directive后面的参数一:自定义指令的名称,参数二:function 返回值是一个对象 template是模板) app.directive("shen",function(){ return { template:"<h1>这是自定义属性</h1>&

angular 路由router的用法总结

1,html页面 <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, 

MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js 概念摘录

转自:http://www.cnblogs.com/xishuai/p/mvc-mvp-mvvm-angularjs-knockoutjs-backbonejs-reactjs-emberjs-avalonjs.html MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式. 交互方式(所有通信都是单向的): View 传送指令到 Contro

angular 自定义指令 详解--restrict、restrict、replace

Angularjs 允许根据实际业务需要自定义指令, 通过angular全局对象下的 directive 方法实现.可以自定义属性.自定义标签.自定义功能 接下来定义一个名叫custom的指令,并利用这个自定义指令来实现元素的替换 html代码: <body ng-app="app"> <p custom></p> <custom></custom> js代码: var app = angular.module("a

2.Angular框架-$watch,创建控制器的方式,依赖注入原理,ng-repeat,ng-class

1.1. 在Angular中使用"jQuery" 语法:angular.element Angular中操作的功能称为:jqLite(轻量级jQuery) 1.1.1. 示例 // 获取 jqLite 对象 var $ = angular.element; $(document).ready(function() { }); 1.1.2. 注意点 1 jqLite 中只实现了jQuery的部分功能 2 jqLite中选择器只能是DOM对象 3 尽量使用ng中提供的功能 1.2. Ang

angularJS自定义属性作为条件中转

<html> <head> <meta charset="utf-8"/> <title></title> </head> <body ng-app="components"> <div ng-controller="c1"> <myelement alert="loadData1()"> <h1>哈哈<