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对象的函数
Dec 22 Javascript
浅析Js中的单引号与双引号问题
Nov 06 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
jQuery解决$符号命名冲突
Jun 18 Javascript
javascript中的面向对象
Mar 30 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
Aug 29 Javascript
vue加载完成后的回调函数方法
Sep 07 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
Vue 开发必须知道的36个技巧(小结)
Oct 09 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 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无限级分类方法及代码
2013/06/21 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
php通过各种函数判断0和空
2020/07/04 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python入门篇之列表和元组
2014/10/17 Python
Python数据操作方法封装类实例
2017/06/23 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
Python 实现微信防撤回功能
2019/04/29 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
珍珠奶茶店创业计划书
2014/01/11 职场文书
情人节活动策划方案
2014/02/27 职场文书
护理专业自荐书
2014/06/04 职场文书
招标承诺书
2014/08/30 职场文书
校长师德表现自我评价
2015/03/04 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python