AngularJS中isolate scope的用法分析


Posted in Javascript onNovember 22, 2016

本文实例讲述了AngularJS中isolate scope的用法。分享给大家供大家参考,具体如下:

angular js中指令directive有个特别有用的东西,那就是 isolate scope (被隔离的scope)

关于具体他和全局的scope 有什么区别,可以参考下面这篇文章:

本文主要讲解 其具体的几种使用方式:

1. = 的使用

[html]

<div class="card" ng-repeat="app in apps">
  <app-info info="app"></app-info>
</div>

[js]

app.directive('appInfo', function() {
   return {
    restrict: 'E',
    scope: {
     info: '=' //如果是 = 就是info属性的值 赋给 当前scope.info
    },
    templateUrl: 'js/directives/appInfo.html'
   };
});

2. =属性名 的使用

[html]

<div ng-controller="AppCtrl as appctrl">
  Ctrl
  <input type="text" ng-model="appctrl.ctrlFlavor">
  Dir
  <div ab="25" drink="123456" flavor="appctrl.ctrlFlavor"></div>
</div>

[js]

var app = angular.module("drinkApp", []);
app.controller("AppCtrl", function() {
  var appctrl = this;
  appctrl.ctrlFlavor = "blackberry";
});
app.directive("drink", function() {
  return {
    scope: {
      flavor: "=ab"
    },
    template: '<input type="text" ng-model="flavor">'
  };
});

显示结果:

AngularJS中isolate scope的用法分析

3. @ = 和 & 的综合使用

html 代码:

<div class="mainController" ng-app="isolateApp">
     <div ng-controller="AppCtrl">
       <div class="row">
         <character
         name="Roman Regins"
         image="img/p1.jpg"
         movetype="movetype"
         use-move="getMove(name,movetype,move)"
         class="col-xs-4"></character>
         <character
         name="Seth Rollins"
         image="./img/p2.jpg"
         movetype="movetype"
         use-move="getMove(name,movetype,move)"
         class="col-xs-4"></character>
         <character
         name="Dean Ambrose"
         image="./img/p3.jpg"
         movetype="movetype"
         use-move="getMove(name,movetype,move)"
         class="col-xs-4"></character>
       </div>
     </div>
</div>

js控制:

//显示@ = 和 &综合的
var app = angular.module('isolateApp',[]);
app.controller("AppCtrl",['$scope',"$element",function($scope,$element){
      $scope.getMove = function(name,movetype,move){
        console.log(name+'$$$'+movetype+'$$$'+move);
      }
      $scope.movetypes = ['amove','bavi','cmp4'];
      $scope.movetype = $scope.movetypes[0];
}])
.directive("character",function(){
      return {
        restrict:"E",
        scope:{
          name:"@", //@指的是属性的值赋给name 仅此而已
          image:"@",
          movetype:"=", //表示类型等于当前属性的值
          useMove:"&" //&表示对应的函数的引用 及该属性对应的函数别名就是他了
        },
        controller:"AppCtrl", //只有这里声明了 才会将select选项载入进来
        replace:true,
        templateUrl:"shield_isolate.html"
      };
})

模板:

<script type="text/ng-template" id="shield_isolate.html">
    <div class="panel panel-default">
      <div class="panel-body">
        <div>
          <figure>
            <img src="{{image}}">
            <figcaption>{{name}}</figcaption>
          </figure>
        </div>
      </div>
      <div>Move:
        <input type="text" ng-model="value" class="form-controller"/>
      </div>
      <div>
        Select Move Type:
        <select ng-model="movetype"
          ng-options="movetype for movetype in movetypes">
        </select>
      </div>
      <div class="panel-footer clearfix">
        <div class="btn btn-primary"
         ng-click="useMove({name:name,movetype:movetype,move:value})"
        >Action!</div>
        //这里的":"前的三个参数分别对应 父函数的三个参数的名称
        //":" 后的三个参数则对应 给定值scope 的三个属性 以便一一对应传值
      </div>
    </div>
</script>

显示结果:

AngularJS中isolate scope的用法分析

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
用jQuery打造TabPanel效果代码
May 22 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 Javascript
JS 两个字符串时间的天数差计算
Aug 25 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
Jquery 实现图片轮换
Jan 28 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
May 02 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
详解js界面跳转与值传递
Nov 22 #Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 #Javascript
JavaScript面向对象分层思维全面解析
Nov 22 #Javascript
浅析location.href跨窗口调用函数
Nov 22 #Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 #Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 #Javascript
基于js实现checkbox批量选中操作
Nov 22 #Javascript
You might like
PHP判断网络文件是否存在的方法
2015/03/12 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python字典get()方法用法分析
2015/04/17 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
pycharm快捷键汇总
2020/02/14 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
Python中Selenium模块的使用详解
2020/10/09 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
中国好声音华少广告词
2014/03/17 职场文书
班长竞选演讲稿
2014/04/24 职场文书
公司合并协议书范本
2014/09/30 职场文书
师德承诺书2015
2015/04/28 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android