好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

angular学习笔记02 angular指令大全

第一步 先要引入angular,

 

第二步  在 html 标签中<html  ng-app>  加入ng-app(这是个必须的,不然会报错)

 

接下来就可以去使用angular的各种指令了。

//js文件  js语法需要注意

在网上的写法有很多,最好是按标准的写法来写,不然js代码经过压缩就不能使用了(很重要)

压缩代码会出错,不压缩的话还是能运行的,原因是压缩代码会把关键字替换,因此 angular 在定义的时候需要这样。

angular.module( '  antsins.controllers  '  )

.controller(  '  GoodsCtrl  '  ,
  [  '  $scope  '  , function($scope){
     //  这里就能写angular代码了 
    $scope.name = '  tom  '    
}] 

下面就直接上指令 

//数据和model的绑定

<input type= "  text  "  ng-model= "  yourname  "  placeholder= "  World  " >

 

 ///  html5表单验证属性与angular配合,要是form里有验证规则没有通过 
 //  则$valid为false 

<input type= "  text  "  name= "  cheshi  "  ng-model= "  myName  "  required/>
    <p ng-bind= "  myForm.cheshi.$valid  " ></p>

 //  复选框,checkboxModel.value1 选中为true,没选中为false 
<input type= "  checkbox  "  ng-model= "  checkboxModel.value1  " >

 //  直接使用ng-bind-html报错 
<p ng-bind-html= "  myHTML  " ></p> 
解决方法,需要将html代码标记为信任,如下
.controller(  '  FormController  ' , [ '  $scope  ' , '  $sce  '  , function($scope,$sce) {
        $scope.myHTML  = $sce.trustAsHtml(
              '  I am an <code>HTML</code>string with   '  +
             '  <a href="#">links!</a> and other <em>stuff</em>  '  );
    }])


  //  <pre ng-bind-template="{{salutation}} {{name}}!"></pre> 

 //直接  使用ngChange报错 
<input type= "  text  "   ng-change= "  onChange()   " /> 
解决方法:必须加上:ng -model= "  age  " 
<input type= "  text  "  ng-model= "  age  "  ng-change= "  onChange()   " />

 //  ng-class 给一个元素增加class ,可以是一个对象,要、拥有几个class,也可以只有一个 
<div ng- class = "  {className:true,otherName:bol}  " ></div>
 //  只有一个class 
<p ng- class = "  style  " >Using String Syntax</p>
    <input type= "  text  "  ng-model= "  style  "  
           placeholder = "  Type: bold strike red  "  aria-label= "  Type: bold strike red  " >
    <hr>

 //  也可以是以个数组,数组中分别不同的值 
<p ng- class = "  [style1, style2, style3]  " >Using Array Syntax</p>
<input ng-model= "  style1  "  
       placeholder = "  Type: bold, strike or red  "  aria-label= "  Type: bold, strike or red  " ><br>
<input ng-model= "  style2  "  
       placeholder = "  Type: bold, strike or red  "  aria-label= "  Type: bold, strike or red 2  " ><br>
<input ng-model= "  style3  "  
       placeholder = "  Type: bold, strike or red  "  aria-label= "  Type: bold, strike or red 3  " ><br>
<hr>

 //  还可以是数组和对象的混搭 
<p ng- class = "  [style4, {orange: warning}]  " >Using Array and Map Syntax</p>
<input ng-model= "  style4  "  placeholder= "  Type: bold, strike  "  aria-label= "  Type: bold, strike  " ><br>
<label><input type= "  checkbox  "  ng-model= "  warning  " > warning (apply  "  orange  "   class )</label>

 

 //  利用ng-class 实现简单的动画 
. base - class   {
  transition:all cubic -bezier( 0.250 ,  0.460 ,  0.450 ,  0.940 )  0  .5s;
}

.  base - class .my- class   {
  color: red;
  font - size:3em;
} 

 //  ng-click="myVar='my-class'"  只要一点击就给myVar赋值 
<input id= "  setbtn  "  type= "  button  "  value= "  set  "  ng-click= "  myVar='my-class'  " >
<input id= "  clearbtn  "  type= "  button  "  value= "  clear  "  ng-click= "  myVar=''  " >
<br>
<span  class = "  base-class  "  ng- class = "  myVar  " >Sample Text</span>

 //  ngClassEven  和 ngClassOdd 指令的使用 奇数就使用odd,偶数就使用even
  //  常于ng-repeat配合使用
  //  ng-init 数据初始化,相当于var,给一个变量赋值 
<ol ng-init= "  names=['John', 'Mary', 'Cate', 'Suz']  " >
  <li ng-repeat= "  name in names  " >
   <span ng- class -odd= "  'odd'  "  ng- class -even= "  'even'  " > 
     {{name}}
    </span>
  </li>
</ol>

//ngClick 点击事件

 //  ngCloak  使用后没有{{}} 闪屏的情况,相当于ng-bind 
<div id= "  template1  "  ng-cloak>{{  '  hello  '  }}</div>
<div id= "  template2  "   class = "  ng-cloak  " >{{  '  world  '  }}</div>

 //  ngCopy  输入框中的文字被复制的时候会触发的事件
  //  ngCut   输入框中的文字被剪切的时候就会触发的事件 
 asdfasdfasd
 <input ng-copy= "  copied=true  "  ng-init= "  copied=false; value='copy me'  "  ng-model= "  value  " > 
copied: {{copied}}
 <input ng-cut= "  cut=true  "  ng-init= "  cut=false; value='cut me'  "  ng-model= "  value  " > 
cut: {{cut}} 

 //  ng-csp   
修改 AngularJS 中关于  "  eval  "   的行为方式及内联样式:
ng - csp 指令用于修改 AngularJS 的安全策略。
如果使用了 ng - csp 指令, AngularJS 将不会执行eval 函数,这样就无法注入内联样式。
设置 ng -csp 指令为 no- unsafe - eval, 将阻止 AngularJS 执行 eval 函数,但允许注入内联样式。
设置 ng -csp 指令为 no-inline- style, 将阻止 AngularJS 注入内联样式,但允许 执行 eval 函数。
如果开发 Google Chrome 扩展或 Windows 应用 ng - csp 指令是必须的。
注意:ng - csp 指令不会影响 JavaScript,但会修改 AngularJS 的工作方式,这就意味着: 你仍然可以编写 eval 函数,
 且也可以正常执行, 但是 AngularJS 不能执行它自己的 eval 函数。如果采用兼容模式,会降低   30 % 的性能。


//ngDblclick 双击会触发的事件

 //  ngDisabled  禁用指令:值为true的时候禁用button 
<label>Click me to toggle: <input type= "  checkbox  "  ng-model= "  checked  " ></label><br/>
<button ng-model= "  button  "  ng-disabled= "  checked  " >Button</button>


//ng-Focus 失去焦点时触发的事件

 //  ngHref,直接用href 就不能使用angular语法 
<a id= "  link-3  "  ng-href= "  /{{'123'}}  " >link  3 </a>

/ ngIf  为true,则span显示
 <span ng- if = "  checked  "   class = "  animate-if  " > 
  This   is  removed when the checkbox  is   unchecked  .
 </span>
 //  ng-hide功能类似,使用方式相反。元素的显示或隐藏是通过改变CSS的display属性值来实现的。
  //  ng-if指令可以根据表达式的值在DOM中生成或移除一个元素。
  //  如果赋值给ng-if的表达式的值是false,那对应的元素将会从DOM中移除,
  //  否则生成一个新的元素插入DOM中。ng-if同no-show和ng-hide指令最  //  本  //  质/的区别是,
  //  它不是通过CSS显示或隐藏DOM节点,而是删除或者新增结点。 

 //  ng-keydowm 返回的按键的字符值
  //  ngkeypress 返回的ASSCII字符 

<input ng-keyup="event=$event">
<p>event keyCode: {{ event.keyCode }}</p>
<p>event altKey: {{ event.altKey }}</p>
event.altKey
功能:检测事件发生时Alt键是否被按住了。
语法:event.altKey
取值:true | false
说明:
altKey属性为true表示事件发生时Alt键被按下并保持,为false则Alt键没有按下。
altKey属性可结合鼠标或键盘使用,多用于制作一些快捷操作方式。

event.ctrlKey
功能:检测事件发生时Ctrl键是否被按住了。
语法:event.ctrlKey
取值:true | false
说明:
ctrlKey属性为true表示事件发生时Ctrl键被按下并保持,为false则Ctrl键没有按下。
ctrlKey属性可结合鼠标或键盘使用,多用于制作一些快捷操作方式。

event.shiftKey
功能:检测事件发生时Shift键是否被按住了。
语法:event.shiftKey
取值:true | false
说明:
shiftKey属性为true表示事件发生时Shift键被按下并保持,为false则Shift键没有按下。
shiftKey属性可结合鼠标或键盘使用,多用于制作一些快捷操作方式。

 //  ngList 输入的转为数组,输入逗号会分隔 
<input name= "  namesInput  "  ng-model= "  names  "  ng-list required></label> 
 //  ngList 输入的转为数组,输入换行会分隔 
<textarea ng-model= "  list  "  ng-list= "  &#10;  "  ng-trim= "  false  " ></textarea>


 //  form 中有输入不不符合规范的时候 
<code>{{form.input.$valid}}为false

 //  ngModel 适用的标签 
 For basic examples, how to use ngModel, see:

input
text
checkbox
radio
number
email
url
date
datetime - local
time
month
week
  select  
textarea
ng -valid: the model  is  valid     //  有效的输入 
ng-invalid: the model  is  invalid  //  无效的输入 
ng-valid-[key]:  for   each valid key added by $setValidity
ng -invalid-[key]:  for   each invalid key added by $setValidity
ng -pristine: the control hasn '  t been interacted with yet 
ng- dirty: the control has been interacted with 
ng - touched: the control has been blurred
ng -untouched: the control hasn '  t been blurred 
ng- pending: any $asyncValidators are unfulfilled
ng -empty: the view does not contain a value or the value  is  deemed  "  empty  " ,  as   defined by the ngModel.NgModelController method
ng -not-empty: the view contains a non-empty value

 //  ngModelOptions 数据模型的选项配置  
<input type= "  text  "  name= "  userName  "  
             ng -model= "  user.name  "  
             ng -model-options= "  { updateOn: 'blur' }  " 
           />
 //  上面这个例子中只有失去焦点的时候才会根新数据 
ng-model-options= "  { updateOn: 'default blur' }  " 
 //  上面的例子中,输入会更新model,失去焦点也会更新model(感觉这个没太必要) 
debounce:{ default : 1000 ,blur: 0 }} "
  //  上面的例子中,时间间隔1秒没有输入没更新model,失去焦点会立即更新model 
 
ng -model-options= "  { debounce: 1000 }  " 
 //  上面这个例子中,如果时间间隔1s内没 有继续输入就会更新数据 

//ngMouseDown  鼠标点击
//ngMouseuo  鼠标松开事件

//ng-non-bindable 指令用于告诉 AngularJS 当前的 HTML 元素或其子元素不需要编译。
//在这个标签内的指令不会被执行
<div ng-non-bindable>Ignored: {{1 + 2}}</div>

  

 //  隐藏的元素会被展开 
<details id= "  details  "  ng-open= "  open  " >
   <summary>Show/Hide me</summary>
</details>

 //  <select ng-model="myColor" ng-options="color.name for color in colors"> 
 控制器中数据
$scope.colors  =  [
      {name: 'black', shade:'dark' },
      {name: 'white', shade:'light', notAnOption:  true  },
      {name: 'red', shade:'dark' },
      {name: 'blue', shade:'dark', notAnOption:  true  },
      {name: 'yellow', shade:'light', notAnOption:  false  }
    ] 

 //  <select ng-model="myColor" ng-options="color.name group by color.shade for color in colors"> 
 select中数据会有嵌套


  //  根据color.notAnOption 的boolear值去判断这个选项是不是禁用了 
<select ng-model="myColor" 
          ng -options="color.name group by color.shade disable when color.notAnOption for color in colors">
    </select>

 //  ngPaste 粘贴数据进去的时候会触发的事件 

 //  ng-pattern="regex" 正则判断 
 $scope.regex = '\\d+' ;
  <input type="text" ng-model="model"  /><br>

 //  ngPluralize  隐藏属性?(查不到资料 

 //  为true是,输入框是只读的 
<input type="text" ng-readonly="checked" value="I'm Angular" aria-label="Readonly field" />

/ng-src 写法
<img ng-src="http://www.gravatar.com/avatar/{{hash}}" alt="Description" />

 //  ng-style 写法 
<span ng-style='{"color":"blue"}'>Sample Text</span>

 //  ng-submit  表单提交触发的事件 

 //  ng-switch  内容的切换 

 //  ng-value 

 //  script     
 用来写模块
 <script type="text/ng-template" >
  Content of the template.
</script>

<a ng-click="currentTpl='/tpl.html'" >Load inlined template</a>
<div ></div>

nagular指令大概就是这些了,大部分是从官网取来的 https://docs.angularjs.org/

查看更多关于angular学习笔记02 angular指令大全的详细内容...

  阅读:34次