《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,要从基础抓起。

时间: 2024-08-08 01:27:40

《AngularJS》——scope的绑定策略的相关文章

angularjs自定义指令绑定策略---‘&’绑定

接着上一篇 理解了"="和"@"绑定之后再来理解"&"绑定,就很简单了,同理,用"桥梁"进行分析,但还是有一些例外的情况,要不然angularjs也不会单独设定一个绑定策略,看案例先: <!DOCTYPE html><html lang="en" ng-app="MyModule"><head>    <meta charset=&quo

angularjs中的绑定策略“@”,“=”,“&amp;”实例

<!DOCTYPE html> <html lang="zh-CN" ng-app="app"> <head> <meta charset="utf-8"> <title>绑定策略</title> <link rel="stylesheet" href="../bootstrap.min.css"> </head>

解析angularjs中的绑定策略

一.首先回顾一下有哪些绑定策略? 看这个实在是有点抽象了,我们来看具体的实例分析吧! 二.简单的Demo实例 @绑定:传递一个字符串作为属性的值.比如 str : '@string' 控制器中代码部分示例: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 myDirec.controller('MyCtrl3',['$scope',function($scope){    $scope.ctrlFlavor=鸡尾酒;        $scope.sayHello

angularjs 指令—— 绑定策略(@、=、&amp;)

angularjs 指令—— 绑定策略(@.=.&) 引入主题背景:angular 的指令配置中的template可以直接使用硬编码写相应的代码,不过也可以根据变量,进行动态更新.那么需要用到那些变量,因用法的不同,所以需要设置合适的绑定策略. 一.@ 绑定策略 @ 绑定策略,它的作用就是能把指令配置的独立Scope下变量的值等于根据@绑定的指令属性的值.(指令属性的值可以使用表达式,但是得出来的值一定是字符串.) 1.上代码: html代码 <!DOCTYPE html> <h

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

开门见山地说,scope:{}使指令与外界隔离开来,使其模板(template)处于non-inheriting(无继承)的状态,当然除非你在其中使用了transclude嵌入,这点之后的笔记会再详细记录的.但是这显然不符合实际开发中的需求,因为实际上,我们经常想要我们的指令能够在特定的情况下与外界进行数据上的交互,这就需要借助绑定策略之手了. 大家知道,当scope选项写为scope:{}这种形式的时候,就已经为指令生成了隔离作用域,现在,我们来看看绑定策略的三种形式:& .= .@. 首先是

AngularJS学习笔记之directive&mdash;scope选项与绑定策略

From:http://www.linuxidc.com/Linux/2015-05/116924.htm scope:{}使指令与外界隔离开来,使其模板(template)处于non-inheriting(无继承)的状态,当然除非你在其中使用了transclude嵌入,这点之后的笔记会再详细记录的.但是这显然不符合实际开发中的需求,因为实际上,我们经常想要我们的指令能够在特定的情况下与外界进行数据上的交互,这就需要借助绑定策略之手了. 大家知道,当scope选项写为scope:{}这种形式的时

directive——scope选项与绑定策略

scope 有true(以强制创建一个单独的范围) 和 false (default): 当scope选项写为scope:{}这种形式的时候,就已经为指令生成了隔离作用域,现在,我们来看看绑定策略的三种形式:& .= .@. 指令代码: angular.directive('myDirective', function(){ return { ... scope: { obj1: '=', obj2: '@', obj3: '&' } ... }; }); 绑定策略一   @ : 它与{

Angular学习心得之directive——scope选项与绑定策略

开门见山地说,scope:{}使指令与外界隔离开来,使其模板(template)处于non-inheriting(无继承)的状态,当然除非你在其中使用了transclude嵌入,这点之后的笔记会再详细记录的.但是这显然不符合实际开发中的需求,因为实际上,我们经常想要我们的指令能够在特定的情况下与外界进行数据上的交互,这就需要借助绑定策略之手了. 大家知道,当scope选项写为scope:{}这种形式的时候,就已经为指令生成了隔离作用域,现在,我们来看看绑定策略的三种形式:& .= .@. 首先是

[email&#160;protected]独立作用域scope绑定策略之&amp;符策略

1.index.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title>scopeAt</title>    <meta charset="utf-8">        <link rel="stylesheet" href="../css/bootstrap.css">    <