angular js中指令directive有个特别实用的东西,那就是 isolate scope (被隔离的scope)

关于详细他和全局的scope 有什么差别。能够參考以下这篇博文:

AngularJS 全局scope与Isolate 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">'
};
});

显示结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

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>

显示结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

angularjs学习之八(angularjs中isolate scope的使用)的更多相关文章

  1. Angularjs学习---ubuntu12.04中karma安装配置

    Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结   karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然 ...

  2. angularjs学习笔记3-directive中scope的绑定修饰符

    在angularjs中,一个directive返回一个对象,对象存在很多属性,并且可以在directive中自定义自己的scope,而使用自己的scope是为了防止一个directive被使用在多个地 ...

  3. AngularJs学习笔记(3)——scope

    AngularJS启动并生成视图时,会将根ng-app元素同$rootScope进行绑定. $rootScope是所有$scope对象的最上层,是AngularJS中最接近全局作用域的对象 . 一个n ...

  4. Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结

    karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然后才可以安装karma.nodejs,npm的安装过程可以参考文章:Angularjs学习- ...

  5. AngularJs学习笔记-AngularJS权威教程学习笔记

    AngularJS是什么? AngularJS是一种构建动态Web应用的结构化框架.主要用于构建单页面Web应用, 增加抽象级别,使构建交互式的现代Web应用变得更加简单. AngularJS使开发W ...

  6. Angularjs学习---官方phonecat实例学习angularjs step0 step1

    接下来一系列的文章都是学习https://docs.angularjs.org/tutorial的笔记,主要学习的angular-phonecat项目的实现,来介绍angularjs的使用. 1.下载 ...

  7. 一些关于angularJS的自己学习和开发过程中遇到的问题及解决办法

    这篇文章也许会不定时更新,主要记录这段时间内自己遇到的angularjs学习开发的一些问题的解决办法.本文以摘抄为主,主要目的还是将自己遇到的困惑在各个地方查到的解决办法的汇总,给自己留个备忘吧. 1 ...

  8. AngularJS 全局scope与Isolate scope通信

    在项目开发时,全局scope 和 directive本地scope使用范围不够清晰,全局scope与directive本地scope通信掌握的不够透彻,这里对全局scope 和 directive本地 ...

  9. angularjs 中的scope继承关系——(2)

    转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include ...

随机推荐

  1. LongListSelector 控件 在 wp7 和wp8中的不同之处

    众所周知,wp8中的LongListSelector集成到了Rom中. 性能得到了提升,一些api也发生了变化. 在这里总结一下,作为分享,也作为备忘. 参考文献 Windows Phone 8 XA ...

  2. BNUOJ 19297 Code Refactoring

    Code Refactoring Time Limit: 3000ms Memory Limit: 131072KB   This problem will be judged on UVA. Ori ...

  3. MySQL5.7多源复制实践

    MySQL5.7开始新增多源复制功能,即允许一个salve同时复制多个主库的事务,slave会创建通往每个主库的管道.多源复制在应用来自多个源的事务的时候不会对有冲突的事务进行检测. 配置实现 主库支 ...

  4. cell展开的几种方式

    一.插入新的cell 原理: (1)定义是否展开,和展开的cell的下标 @property (assign, nonatomic) BOOL isExpand; //是否展开 @property ( ...

  5. BZOJ4199 [Noi2015]品酒大会 【后缀数组 + 单调栈 + ST表】

    题目 一年一度的"幻影阁夏日品酒大会"隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发"首席品 酒家"和"首席猎手"两个奖项,吸 ...

  6. 算法复习——cdq分治

    题目: Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要 ...

  7. 浅谈java内存泄漏

    最近有朋友遇到个问题,tomcat在运行几天后就会报outofmemory,然后就死了,我就稍微总结了下内存泄漏的一些原因,纯属个人理解,欢迎大侠们劈砖: 一.字符串问题 这个也是一个常见的问题,我们 ...

  8. poj 3461 Oulipo,裸kmp

    传送门 Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32373   Accepted: 13093 Desc ...

  9. R语言入门--画图(一)--ggplot2

    先写一些需要用到的知识点,比如包.函数 dplyr 很好用的包 经常与ggplot2连用 mutate:用于对数据框的列进行重新处理,或者用处理的结果添加新列 数据清洗: 1.na.omit()   ...

  10. 使用Sharesdk实现第三方平台登录(qq,新浪微博)

    首先到sharesdk开放píng台下载demo ,以下要用到的文件来自于 simple里面 第一步:导入官方的jar包    第二步:添加ShareSDK.xml文件并修改相关píng台key  第 ...