angularjs中的绑定策略“@”,“=”,“&”实例
<!DOCTYPE html>
<html lang="zh-CN" ng-app="app">
<head>
<meta charset="utf-8">
<title>绑定策略</title>
<link rel="stylesheet" href="../bootstrap.min.css">
</head>
<body>
<h4>
AngularJS提供了几种方法能够将指令内部的隔离作用域,同指令外部的作用域进行数据绑定。
</h4>
为了让新的指令作用域可以访问当前本地作用域中的变量,需要使用下面三种别名中的一种(以下为官方的解释):
<ol>
<!--本地作用域属性:使用@符号将本地作用域同DOM属性的值进行绑定。指令内部作用域可以使用外部作用域的变量。-->
<li>@ (or @attr)</li>
<!--双向绑定:通过=可以将本地作用域上的属性同父级作用域上的属性进行双向的数据绑定。 就像普通的数据绑定一样,本地属性会反映出父数据模型中所发生的改变。 -->
<li>= (or =attr)</li>
<!--父级作用域绑定 通过&符号可以对父级作用域进行绑定,以便在其中运行函数。意味着对这个值进行设置时会生成一个指向父级作用域的包装函数。
要使调用带有一个参数的父方法,我们需要传递一个对象,这个对象的键是参数的名称,值 是要传递给参数的内容。-->
<li>& (or &attr)</li>
</ol> <div style="border: 1px solid red;width: 400px;height: 200px;" ng-controller="ParentController">
<p style="color: orange;">请认真记住以下输入框中的提示文字</p>
记住了?<input type="checkbox" ng-model="isRemember">
<p ng-show="isRemember">
<input type="text" ng-model="someVal" placeholder="随意输入几个值">
并试着改变下面两个input的值
</p>
<div ng-show="!isRemember || someVal" my-directive one-val="{{someVal}}" two-val="someVal" three-val="parentFun('哈哈')"></div>
</div> <script src="../angular.min.js"></script>
<script>
angular.module('app', [])
.directive('myDirective', function() {
return {
restrict: 'A',
replace: true,
scope: {
oneVal: '@oneVal', // 相当于“值复制”
twoVal: '=twoVal', // 相当于“引用复制”
threeVal: '&threeVal' // 绑定父作用域中的方法
},
template: '<div>'+
'<input type="text" ng-model="oneVal" placeholder="@ 改变我其他不受影响">'+
'<input type="text" ng-model="twoVal" placeholder="= 要是动我其他都得变">'+
'<input type="button" ng-click="threeVal()" value="$ 点我试试">'+
'</div>' }
})
.controller('ParentController', function($scope) {
$scope.parentFun = function(s) {
alert("我成功绑定了父级作用域中的函数!" + s);
}
})
</script>
</body>
</html>
以上实例可以直接运行,动手跑跑更有意思哦!
angularjs中的绑定策略“@”,“=”,“&”实例的更多相关文章
- 解析angularjs中的绑定策略
一.首先回顾一下有哪些绑定策略? 看这个实在是有点抽象了,我们来看具体的实例分析吧! 二.简单的Demo实例 @绑定:传递一个字符串作为属性的值.比如 str : ‘@string’ 控制器中代码部分 ...
- AngularJs 中ngModel绑定HTML5 date数据同步问题
以下代码例子中,直接将date类型的input标签与ng-model对应的变量绑定,会出现内存数据和页面数据不一致的问题.虽然AngularJS是双向数据绑定,但是如果用下面的方法,在页面更新date ...
- angularjs 指令—— 绑定策略(@、=、&)
angularjs 指令—— 绑定策略(@.=.&) 引入主题背景:angular 的指令配置中的template可以直接使用硬编码写相应的代码,不过也可以根据变量,进行动态更新.那么需要用到 ...
- AngularJS中数据双向绑定(two-way data-binding)
1.切换工作目录 git checkout step-4 #切换分支,切换到第4步 npm start #启动项目 2.代码 app/index.html Search: <input ng-m ...
- AngularJS学习笔记之directive—scope选项与绑定策略
From:http://www.linuxidc.com/Linux/2015-05/116924.htm scope:{}使指令与外界隔离开来,使其模板(template)处于non-inherit ...
- Angularjs 中使用指令绑定点击事件
项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的. 如html <ul id="main-menu"> ...
- AngularJS学习笔记之directive——scope选项与绑定策略
开门见山地说,scope:{}使指令与外界隔离开来,使其模板(template)处于non-inheriting(无继承)的状态,当然除非你在其中使用了transclude嵌入,这点之后的笔记会再详细 ...
- angularjs中的单选框绑定数据注意事项
这里说的是angularjs 1.x 在实现单选框时,我们完全可以用html自带的<input type="radio"/>,但是配合angularjs 中的双向绑定, ...
- 深入学习AngularJS中数据的双向绑定机制
来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...
随机推荐
- sql中关于case when的一个例子
SELECT rownum R, a.expert_id as USERID, a.expert_id as TYPE, b.type_desc as TYPE_DESC, a.sex as SEX, ...
- xcode改名称、路径后要在终端中设置路径
打印xcode位置: xcode-select -print-path 重新设置xcode位置 sudo xcode-select -switch /Applications/Xcode/Xcode6 ...
- Vim记录
Command Mode下: . 代表当前行 % 代表所有行 $ 代表结束行 :1,$normal i# 全部行前加#,同下 :%normal i# :read ! cd /usr/bin/; ...
- h.264的POC计算
本文参考自http://wenku.baidu.com/link?url=ZPF0iSKzwLQg_8K02pnnd_-Zd6ISnsOGWsGYb98ucLkELZO4nOv-X-v2GKLzI3r ...
- Keil C51总线外设操作问题的深入分析
阅读了<单片机与嵌入式系统应用>2005年第10期杂志<经验交流>栏目的一篇文章<Keil C51对同一端口的连续读取方法>(原文)后,笔者认为该文并未就此问题进行 ...
- HDOJ(HDU) 1976 Software Version(简单判断)
Problem Description 相信大家一定有过在网上下载软件而碰到多个不同版本的情况. 一般来说,软件的版本号由三个部分组成,主版本号(Major Version Number),子版本号( ...
- Matlab:拟合(2)
非线性最小二乘拟合: 解法一:用命令lsqcurvefit function f = curvefun(x, tdata) f = x() + x()*exp() * tdata); %其中x() = ...
- Be Sociable, Share!
- 静态变量符 static
1.private是访问权限限定,static表示不要实例化就可以使用. (1)被static修饰的变量,叫静态变量或类变量,没有被static修饰的变量,叫实例变量. 对于静态变量在内存中只有一个拷 ...
- struts2的配置和使用
一:配置stuts2的运行环境,把以下的包放到WEB-INF/lib目录下 1,structs2-core-2.1.6.jar struts的核心库 2,xwork-2.1.2.jar ...