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 相关文章推荐
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
调整小数的格式保留小数点后两位
May 14 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
Mar 03 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
JS集成fckeditor及判断内容是否为空的方法
May 27 Javascript
javascript 动态脚本添加的简单方法
Oct 11 Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
Jun 13 Javascript
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
vue动态绑定class的几种常用方式小结
May 21 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 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
数据库相关问题
2006/10/09 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
python语言元素知识点详解
2019/05/15 Python
django 环境变量配置过程详解
2019/08/06 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python 动态调用函数实例解析
2019/10/21 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
python如何修改文件时间属性
2021/02/05 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
关爱女孩行动实施方案
2014/03/13 职场文书
计生工作先进事迹
2014/08/15 职场文书
十八大标语口号
2014/10/09 职场文书
2014年法院工作总结
2014/11/24 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
项目经理岗位职责范本
2015/04/01 职场文书