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 array 数组详解
Mar 22 Javascript
基于jquery的监控数据是否发生改变
Apr 11 Javascript
MyEclipse取消验证Js的两种方法
Nov 14 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
vue 全局环境切换问题
Oct 27 Javascript
Vue脚手架编写试卷页面功能
Mar 17 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 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进程通信基础之信号
2017/02/19 PHP
PHP实现验证码校验功能
2017/11/16 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
python版本的读写锁操作方法
2016/04/25 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
python request 模块详细介绍
2020/11/10 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Yahoo-PHP面试题4
2012/05/05 面试题
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
社区端午节活动方案
2014/01/28 职场文书
元旦晚会感言
2014/03/12 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android