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 相关文章推荐
用javascript编写的第一人称射击游戏
Feb 25 Javascript
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
面向对象的编程思想在javascript中的运用上部
Nov 20 Javascript
JS刷新当前页面的几种方法总结
Dec 24 Javascript
jquery实现多行文字图片滚动效果示例代码
Oct 10 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
Vue波纹按钮组件制作
Apr 30 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
Canvas实现微信红包照片效果
Aug 21 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
Sep 11 Javascript
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
php xml-rpc远程调用
2008/12/19 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JS实现图片切换效果
2018/11/17 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
详解Python self 参数
2019/08/30 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
如何学习Python time模块
2020/06/03 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
企业宣传方案
2014/03/04 职场文书
团队精神的演讲稿
2014/05/14 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python