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中处理带有命名空间的XML数据
Jun 13 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
Aug 28 Javascript
JQuery导航菜单选择特效
Apr 11 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
Aug 15 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
ES6中new Function()语法及应用实例分析
Feb 19 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
JS中offset和匀速动画详解
2018/02/06 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
快速了解python leveldb
2018/01/18 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
总经理职责范文
2013/11/08 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
关于读书的演讲稿
2014/05/07 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
个人职业及收入证明
2014/10/13 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
MySQL 8.0 之不可见列的基本操作
2021/05/20 MySQL