关于angular中controller和指令交互数据:@
2015-11-18 13:02
495 查看
首先看代码:
html:
bb.js
按照上面的写法,输出的是aaaaaa
首先定义了controller中的变量ctrlFlavor,然后赋值给html中drink指令的flavor属性。drink指令中,又定义了模板,模板中包含了一个变量cc,在link中将html中flavor属性
的值(即controller的值aaaaaa)赋值给template的cc完成数据交互。
angular对上面的写法提供了一个简便的写法,如下:
首先,scope中的@flavor匹配html中的flavor的值,然后将值传入到scope的flavor中,再匹配template的flavor,完成值的传递。
注意,这里@flavor可以写成@aa,html中drink内也要写成aa="",只要和html中的属性匹配上就好。如果只写一个@符号,则html中必须写成flavor="",和scope中的名字一致。
html:
<!doctype html> <html ng-app="app"> <head> </head> <body> <div ng-controller="MyCtrl"> <drink flavor="{{ctrlFlavor}}"></drink> </div> <script src="angular.min.js"></script> <script src="js/bb.js"></script> </body> </html>
bb.js
var app = angular.module('app', []); app.controller('MyCtrl', function($scope){ $scope.ctrlFlavor = "aaaaaa"; }) app.directive("drink", function(){ return { restrict: "AE", template: "<div>{{cc}}</div>", link: function(scope, element, attrs) { scope.cc = attrs.flavor; } } });
按照上面的写法,输出的是aaaaaa
首先定义了controller中的变量ctrlFlavor,然后赋值给html中drink指令的flavor属性。drink指令中,又定义了模板,模板中包含了一个变量cc,在link中将html中flavor属性
的值(即controller的值aaaaaa)赋值给template的cc完成数据交互。
angular对上面的写法提供了一个简便的写法,如下:
var app = angular.module('app', []); app.controller('MyCtrl', function($scope){ $scope.ctrlFlavor = "aaaaaa"; }) app.directive("drink", function(){ return { scope: { flavor: '@flavor' }, restrict: "AE", template: "<div>{{flavor}}</div>", link: function(scope, element, attrs) { } } });
首先,scope中的@flavor匹配html中的flavor的值,然后将值传入到scope的flavor中,再匹配template的flavor,完成值的传递。
注意,这里@flavor可以写成@aa,html中drink内也要写成aa="",只要和html中的属性匹配上就好。如果只写一个@符号,则html中必须写成flavor="",和scope中的名字一致。
相关文章推荐
- @@IDENTITY与SCOPE_IDENTITY()
- angular.element方法汇总
- Angular用来控制元素的展示与否的原生指令介绍
- 使用angular写一个hello world
- vue,angular,avalon这三种MVVM框架优缺点
- Laravel 5框架学习之日期,Mutator 和 Scope
- 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
- Angular中的Promise对象($q介绍)
- angular简介和其特点介绍
- angular中使用路由和$location切换视图
- 浅谈AngularJS--基础
- Scope in JavaScript
- 再度迁移博客
- Meteor+Angular实现轻论坛——Meteor和Angular基础介绍
- 7月国外最新技术文章翻译汇总(IT技术)
- 使用 angular-async-loader 来实现异步加载 angular 模块
- 整合jQuery Mobile+AngularJs 经验谈
- angular实用手册
- angular.animation的使用
- Angular apply使用的场景