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实现的日期操作类DateTime函数代码
Mar 16 Javascript
24款非常有用的 jQuery 插件分享
Apr 06 Javascript
js比较和逻辑运算符的介绍
Mar 10 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 Javascript
JavaScript中string对象
Jun 12 Javascript
JavaScript对数组进行随机重排的方法
Jul 22 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
详解Vue 方法与事件处理器
Jun 20 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
一个符号插入器 中用到的js代码
2007/09/04 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
angular6的响应式表单的实现
2018/10/10 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
环保建议书300字
2014/05/14 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers