angularjs学习之八(angularjs中isolate scope的使用)
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的使用)的更多相关文章
- Angularjs学习---ubuntu12.04中karma安装配置
Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结 karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然 ...
- angularjs学习笔记3-directive中scope的绑定修饰符
在angularjs中,一个directive返回一个对象,对象存在很多属性,并且可以在directive中自定义自己的scope,而使用自己的scope是为了防止一个directive被使用在多个地 ...
- AngularJs学习笔记(3)——scope
AngularJS启动并生成视图时,会将根ng-app元素同$rootScope进行绑定. $rootScope是所有$scope对象的最上层,是AngularJS中最接近全局作用域的对象 . 一个n ...
- Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结
karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然后才可以安装karma.nodejs,npm的安装过程可以参考文章:Angularjs学习- ...
- AngularJs学习笔记-AngularJS权威教程学习笔记
AngularJS是什么? AngularJS是一种构建动态Web应用的结构化框架.主要用于构建单页面Web应用, 增加抽象级别,使构建交互式的现代Web应用变得更加简单. AngularJS使开发W ...
- Angularjs学习---官方phonecat实例学习angularjs step0 step1
接下来一系列的文章都是学习https://docs.angularjs.org/tutorial的笔记,主要学习的angular-phonecat项目的实现,来介绍angularjs的使用. 1.下载 ...
- 一些关于angularJS的自己学习和开发过程中遇到的问题及解决办法
这篇文章也许会不定时更新,主要记录这段时间内自己遇到的angularjs学习开发的一些问题的解决办法.本文以摘抄为主,主要目的还是将自己遇到的困惑在各个地方查到的解决办法的汇总,给自己留个备忘吧. 1 ...
- AngularJS 全局scope与Isolate scope通信
在项目开发时,全局scope 和 directive本地scope使用范围不够清晰,全局scope与directive本地scope通信掌握的不够透彻,这里对全局scope 和 directive本地 ...
- angularjs 中的scope继承关系——(2)
转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include ...
随机推荐
- [adb 命令学习篇] adb 命令总结
https://testerhome.com/topics/2565 Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb ...
- Luogu【P1130】红牌(DP)
欧拉 本蒟蒻第一个自己想出来的DP题 请移步题目链接 调了半天.i从1到n,j从1到m. f[i][j]表示的是第i道工序在第j个小组办完所花的最短时间. 因为要用到上一个状态,而上一个状态要么是同一 ...
- BZOJ 1829 [Usaco2010 Mar]starc星际争霸 ——半平面交
发现最终的结果只和$s1$,$s2$,$s3$之间的比例有关. 所以直接令$s3=1$ 然后就变成了两个变量,然后求一次半平面交. 对于每一个询问所属的直线,看看半平面在它的那一侧,或者相交就可以判断 ...
- linux和windows下分别如何查看电脑是32位的还是64位?
WINDOWS下查看的方法: 方法一. 在开始→运行中输入“winver”,如果您的系统是64位的,会明确标示出“x64 edition”. 方法二.(推荐) 在cmd窗口中输入systeminfo回 ...
- java system.out.printf()的使用方法
package test; public class Main { public static void main(String[] args) { // 定义一些变量,用来格式化输出. double ...
- 查看Linux版本的方法
1)命令: lsb_release -a [root@localhost tmp]# lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-noar ...
- linux的内存性能评估
linux的内存性能评估 参考自:自学it网,http://www.zixue.it/. (1)使用free指令监控内存,参数-m以M为单位显示,-h人性化显示单位. [test@localhost ...
- 词法分析器 /c++实现
#include<iostream> #include<string> #include<vector> #include<map> #include& ...
- MySQL 索引及其用法
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据 ...
- [转] Python 常用第三方模块 及PIL介绍
原文地址 除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip ...