zoukankan      html  css  js  c++  java
  • angular指令中scope的绑定策略

    angular指令中scope的绑定策略

    scope的作用是让父与子的scope可以进行传递数据,它的绑定一般分为三种情况:
    @ :把当前属性作为字符串传递,还可以绑定来自外层scope上的值,在属性中插入{{}}即可;
    =: 与父scope中的属性进行双向绑定;
    &:传递一个来自父scope中的函数,稍后调用。
    
    '@' 的使用
    <person name="{{zhangsan}}"></person>
    <person name="{{lisi}}"></person>
    
     js部分:
    var app = angular.module('app',[]);
    app.controller('apCtrl',['$scope',function($scope){
    	$scope.zhangsan = '张三';
    	$scope.lisi = '李四';
    	$scope.greet = function(name,word){
    		console.log(name +'----'+word)
    	};
    }])
    app.directive('person',function(){
    	return {
    		replace: true,
    		scope: {
    			nameself:'@name' //此处的name是<person name="{{lisi}}"></person>的name,也就是{{lisi}}
    		},
    		restrict:'E',
    		template:'<div>姓名:{{nameself}} <input type="text" ng-model="nameself"></div>'
    	}
    })
    
    '=' 的使用
        {{zhangsan}}
    {{lisi}}
    <person name="zhangsan"></person>
    <person name="lisi"></person>
    
    js部分:
    var app = angular.module('app',[]);
    
    app.controller('apCtrl',['$scope',function($scope){
    	$scope.zhangsan = '张三';
    	$scope.lisi = '李四';
    	$scope.greet = function(name,word){
    		console.log(name +'----'+word)
    	};
    }])
    
    app.directive('person',function(){
    	return {
    		replace: true,
    		scope: {
    			nameself:'=name' //此处的name父scope下的属性,实现双向绑定,子变父也变
    		},
    		restrict:'E',
    		template:'<div>姓名:{{nameself}} <input type="text" ng-model="nameself"></div>'
    	}
    })
    
    '&' 的使用
    {{zhangsan}}
    {{lisi}}
    <person name="zhangsan" greet="greet(name,word)"></person>
    <person name="lisi" greet="greet(name,word)"></person>
    var app = angular.module('app',[]);
    
    app.controller('apCtrl',['$scope',function($scope){
    	$scope.zhangsan = '张三';
    	$scope.lisi = '李四';
    	$scope.greet = function(name,word){
    		console.log(name +'----'+word)
    	};
    }])
    
    app.directive('person',function(){
    	return {
    		replace: true,
    		scope: {
    			nameself:'=name',
    			greetself:'&greet'
    		},
    		restrict:'E',
    		template:'<div>姓名:{{nameself}} <input type="text" ng-model="word"><div ng-click="greetself({name: nameself,word:word})">click</div></div>'
    	}
    })
  • 相关阅读:
    》》》oracle新建用户
    SVN(subversion )服务端和客户端的下载安装使用
    《《《 【WEB前端】零基础玩转微信小程序——在vscode(Visual Studio Code)安装easy less
    《《《 【WEB前端】零基础玩转微信小程序——新建⼩程序项⽬
    《《《 【WEB前端】零基础玩转微信小程序——新建一个项目页面
    《《《 【WEB前端】零基础玩转微信小程序中的 相关代码dome03.wxml
    cocos2dx 流光着色器
    [NCTF2019]True XML cookbook
    [BJDCTF2020]EasySearch
    [GKCTF2020]老八小超市儿
  • 原文地址:https://www.cnblogs.com/rainbow8590/p/7360156.html
Copyright © 2011-2022 走看看