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点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
基于JavaScript实现下拉列表左右移动代码
Feb 07 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
在vue组件中使用axios的方法
Mar 16 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
JSON的parse()方法介绍
Jan 31 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
Aug 07 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 Javascript
vue实现分页加载效果
Dec 24 Javascript
VUE动态生成word的实现
Jul 26 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可逆加密/解密函数分享
2012/09/25 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
php数组键名技巧小结
2015/02/17 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
跟老齐学Python之Python安装
2014/09/12 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
Delphi软件工程师试题
2013/01/29 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
库房管理员岗位职责
2014/03/09 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
公司周年庆活动方案
2014/08/25 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技