<!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中的绑定策略“@”,“=”,“&”实例的更多相关文章

  1. 解析angularjs中的绑定策略

    一.首先回顾一下有哪些绑定策略? 看这个实在是有点抽象了,我们来看具体的实例分析吧! 二.简单的Demo实例 @绑定:传递一个字符串作为属性的值.比如 str : ‘@string’ 控制器中代码部分 ...

  2. AngularJs 中ngModel绑定HTML5 date数据同步问题

    以下代码例子中,直接将date类型的input标签与ng-model对应的变量绑定,会出现内存数据和页面数据不一致的问题.虽然AngularJS是双向数据绑定,但是如果用下面的方法,在页面更新date ...

  3. angularjs 指令—— 绑定策略(@、=、&)

    angularjs 指令—— 绑定策略(@.=.&) 引入主题背景:angular 的指令配置中的template可以直接使用硬编码写相应的代码,不过也可以根据变量,进行动态更新.那么需要用到 ...

  4. AngularJS中数据双向绑定(two-way data-binding)

    1.切换工作目录 git checkout step-4 #切换分支,切换到第4步 npm start #启动项目 2.代码 app/index.html Search: <input ng-m ...

  5. AngularJS学习笔记之directive—scope选项与绑定策略

    From:http://www.linuxidc.com/Linux/2015-05/116924.htm scope:{}使指令与外界隔离开来,使其模板(template)处于non-inherit ...

  6. Angularjs 中使用指令绑定点击事件

    项目中,模板中的菜单是jQuery控制的,在Angularjs中就运行不到了,因为菜单项是ng-repeat之后的. 如html <ul id="main-menu"> ...

  7. AngularJS学习笔记之directive——scope选项与绑定策略

    开门见山地说,scope:{}使指令与外界隔离开来,使其模板(template)处于non-inheriting(无继承)的状态,当然除非你在其中使用了transclude嵌入,这点之后的笔记会再详细 ...

  8. angularjs中的单选框绑定数据注意事项

    这里说的是angularjs 1.x 在实现单选框时,我们完全可以用html自带的<input type="radio"/>,但是配合angularjs 中的双向绑定, ...

  9. 深入学习AngularJS中数据的双向绑定机制

    来自:http://www.jb51.net/article/80454.htm Angular JS (Angular.JS) 是一组用来开发Web页面的框架.模板以及数据绑定和丰富UI组件.它支持 ...

随机推荐

  1. Linux shell (一)

    echo -e "Hello World! \a \n"     # -e 解析反斜杠 read -p "Please input your first name: &q ...

  2. Solr4.8.0源码分析(1)之Solr的Servlet

    Solr是作为一个Servlet运行在Tomcat里面的,可以查看Solr的web.xml. 1.web.xml配置 由web.xml可以看出,基本上所有Solr的操作都是在SolrDispatchF ...

  3. CSS中定位position

    毋庸置疑的是,pisition是css中是最重要的属性之一. 一共有四种定位方式,static.relative.absolute.fixed. 默认的定位方式static 页面中所有的元素默认都是s ...

  4. hadoop安装问题记录

    start-yarn.sh 启动正常,但是无法访问网页http://localhost:8088/cluster 原因: 可能是ipv6 的问题 解决方法: http://stackoverflow. ...

  5. 【HDOJ】1276 士兵队列训练问题

    初看这道题目很像尤瑟夫问题, 区别是每次都是从1开始.解法也很类似.数学解递推公式.假定第K次报数后,余下人数不超过3个人.若第K次为1-3报数,那么由这三个数的当前索引n可推上一次报数之前的编号为n ...

  6. poj2240 - Arbitrage(汇率问题,floyd)

    题目大意: 给你一个汇率图, 让你判断能否根据汇率盈利 #include <iostream> #include <cstdlib> #include <cstdio&g ...

  7. RMQ——忠诚题解

    题目:忠诚 描述: [题目描述] 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满 意.但是由于一些人的 ...

  8. Cantor表(中等)

    2 3 1/2 2/1 题目分析 这是NoI的一道题目,不过题目比较有创意也比较适合新生,就是一道简单的找规律的题目,首先找到第N个数应该在第几个斜行,然后判断这一行是奇数还是偶数,偶数分母递减,分子 ...

  9. Swift基础语法学习总结二

    1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返 ...

  10. java笔记7之录入

    1  为了让程序的数据更符合开发的数据,我们就加入了键盘录入.    让程序更灵活一下.        那么,我们如何实现键盘数据的录入呢?        A:导包            格式:   ...