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中按位“异或”运算符使用介绍
Mar 14 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
Jquery操作Ajax方法小结
Nov 29 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
canvas绘制的直线动画
Jan 23 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
jQuery plugin animsition使用小结
Sep 14 jQuery
mint-ui的search组件在键盘显示搜索按钮的实现方法
Oct 27 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 Javascript
Vue程序调试的方法
Jun 17 Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 19 Javascript
如何使用CocosCreator对象池
Apr 14 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python扫描线填充算法详解
2020/02/19 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
学校校庆演讲稿
2014/05/22 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
入党申请书怎么写?
2019/06/21 职场文书
无线电通信名词解释
2022/02/18 无线电