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 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
详解jenkins自动化部署vue
May 14 Javascript
JS深入学习之数组对象排序操作示例
May 01 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
简单了解Python中的几种函数
2017/11/03 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
什么是接口(Interface)?
2013/02/01 面试题
买卖车协议书
2014/04/21 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
单位委托书怎么写
2014/08/02 职场文书
大学感恩节活动总结
2015/05/05 职场文书
军训通讯稿范文
2015/07/18 职场文书