《AngularJS》——scope的绑定策略

2024-08-27 20:48
文章标签 绑定 策略 angularjs scope

本文主要是介绍《AngularJS》——scope的绑定策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  scope这个对象在Angular中非常重要,可以说要想学好AngularJS,熟练使用Scope时基本功,下面介绍一下Scope的几种绑定策略。

  1、@:把当前的属性作为字符串传递。你还可以绑定来自外层的scope的值,在属性值中插入{{}}即可。下面是代码。

<!DOCTYPE html>
<html  ng-app="MyModule">
<head><meta charset="UTF-8"><title></title><link rel="stylesheet" href="bootstrap-3.0.0/css/bootstrap.css">
</head>
<body><div ng-controller="myCtrl"><drink zk="{{ctrlFlavor}}"></drink></div>
</body>
<script src="angular-1.3.0.14/angular.js"></script>
<script src="scope.js"></script>
</html>

  Controller代码

var myModule=angular.module("MyModule",[]);myModule.controller('myCtrl',['$scope',function($scope){$scope.ctrlFlavor="88888";
}])
myModule.directive("drink",function(){return{restrict:'AE',scope:{zk:'@'},template:"<div>{{zk}}</div>"}
})

  指令drink中有一个zk属性,其上一层的div中的scope有一个ctrlFlavor属性,上面的例子就是讲上层div中scope的值绑定在下层指令drink的zk属性上。

  2、“ = ”  : 与父scope中的属性进行双向绑定

  HTML中的代码,我就简写了啊,与上面的差不多

<div ng-controller="myCtrl">Ctrl:<br><input type="text" ng-model="ctrlFlavor"><br>Directive:<br><drink zk="ctrlFlavor"></drink></div>

  Controller中的代码

var myModule = angular.module("MyModule", []);myModule.controller('myCtrl', ['$scope', function ($scope) {$scope.ctrlFlavor = "88888";}]);myModule.directive("drink", function () {return {restrict: 'AE',scope: { zk: '=' },template: '<input type="text" ng-model="zk">'}})

  在HTML中,有一个文本框,在drink指令的模板中,也有一个文本框,这两个文本框的内容是双向绑定的。也就是说,当上面文本框中的内容改变时,下面的文框中的内容也跟着改变。

  3、“ & ”:传递来自父scope中的函数、稍后调用

<span style="font-family:SimSun;font-size:18px;">  <div ng-controller="MyCtrl"><greeting greet="sayHello(name)"></greeting></div></span>

  Controller代码

var myModule=angular.module("MyModule",[]);
myModule.controller('MyCtrl', ['$scope', function($scope){$scope.sayHello=function(name){alert("Hello "+name);}
}])
myModule.directive("greeting", function() {return {restrict:'AE',scope:{greet:'&'},template:'<input type="text" ng-model="userName" /><br/>'+ '<button class="btn btn-default" ng-click="greet({name:userName})">'+ 'Greeting</button><br/>'}
});

  这个例子的意思是,在div中绑定一个Controller,这个Controller中定义了一个sayHello的方法,在div中又定义了一个名为greeting的指令,这个指令的greet方法与父层scope的sayHello相互关联,然后我们在Controller中让greeting指令中的scope定义好greet,这样,父scope中的函数就传递到了子scope中。

  上面就是scope的绑定策略中的简单实例,学习AngularJS,要从基础抓起。  

这篇关于《AngularJS》——scope的绑定策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112740

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

AngularJS for login

web.xml <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/n

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

缓存策略使用总结

缓存是提高系统性能的最简单方法之一。相对而言,数据库(or NoSQL数据库)的速度比较慢,而速度却又是致胜的关键。 如果使用得当,缓存可以减少相应时间、减少数据库负载以及节省成本。本文罗列了几种缓存策略,选择正确的一种会有很大的不同。缓存策略取决于数据和数据访问模式。换句话说,数据是如何写和读的。例如: 系统是写多读少的吗?(例如基于时间的日志)数据是否是只写入一次并被读取多次?(例如用户配

Flink任务重启策略

概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。常用的重启策略: 固定间隔 (Fixe

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注