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之通用简单的table选项卡实现(二)
May 09 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
jQuery判断iframe中元素是否存在的方法
May 11 Javascript
html+js实现动态显示本地时间
Sep 21 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
原生JS实现获取及修改CSS样式的方法
Sep 04 Javascript
vue+element tabs选项卡分页效果
Jun 29 Javascript
vue项目中微信登录的实现操作
Sep 08 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
javascript一点特殊用法
2008/05/28 Javascript
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
用Webpack构建Vue项目的实践
2017/11/07 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python自动连接ssh的方法
2015/03/07 Python
python中反射用法实例
2015/03/27 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
Python读取stdin方法实例
2019/05/24 Python
python文本数据处理学习笔记详解
2019/06/17 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
联想台湾官网:Lenovo TW
2018/05/09 全球购物
行政工作个人的自我评价
2014/02/13 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
酒店厨房管理制度
2015/08/06 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS