angular中自定义指令时的scope中属性的绑定策略

在angular中自定时,scope可以设置为true, false(默认值), 一个对象。

 

1. 默认值false时,指令的作用域就是指令元素所在的作用域

2. 设置为true时,指令的作用域是从元素所在的作用域继承来的新作用域

3. 设置为一个对象时,产生一个隔离的作用域。

 

在使用隔离作用域的时候,属性有 = @ & 三种绑定策略

scope: {
    name: '=',
    age:'@',
    gen: '&'
}

 用 = 的时候,将本地属性name和指令元素所在作用域的属性进行双向绑定

 用 @ 的时候,将本地属性agek和指令元素上的属性进行绑定

 用 & 的时候,指令元素上的gen需要是个函数,作为回调函数

 

给个例子

<div ng-controller="MyController">
    name: <input type="text" ng-model="name" /><br>
    age: <input type="text" ng-model="age"> <br>
    <div id="dir" my-directive name="name" age="{{age}}" gen="gen(h,s)"></div>
</div>
<script>
    app.controller('MyController', function($scope){
        $scope.gen = function (){
            console.log('------', arguments)
        }
    })
    app.directive('myDirective', function(){
        return {
            restrict: 'A',
            scope: {
                name: '=',
                age:'@',
                gen: '&'
            },
            template: '<div><hr/>name:<input type="text" ng-model="name" /><br>age:<
input type="text" ng-model="age" /><br><input type="button"  
value="click me" ng-click="clo()" /></div>',
            link: function ($scope){
                $scope.clo = function () {
                    //注意传参方式
                    $scope.gen({s:123, h:564});
                }
            }
        };
    })
</script>

 以上是部分代码, ng-app部分没有给出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Angular ,你可以通过自定义指令来扩展 HTML 元素的行为和功能。下面是自定义指令的基本步骤: 1. 创建指令类: - 创建一个新的类,用于定义你的指令。 - 使用 `@Directive` 装饰器来标记该类为一个指令,并传入一个配置对象。 下面是一个示例: ```typescript import { Directive, ElementRef } from '@angular/core'; @Directive({ selector: '[appCustomDirective]' }) export class CustomDirective { constructor(private elementRef: ElementRef) { this.elementRef.nativeElement.style.backgroundColor = 'yellow'; } } ``` 在上面的示例,我们创建了一个名为 `CustomDirective` 的指令类,并使用 `@Directive` 装饰器来标记它为一个指令。`selector` 属性指定了该指令在模板的使用方式,这里使用的是属性选择器 `[appCustomDirective]`。 2. 在模板应用指令: - 在需要应用指令的元素上使用指令的选择器,可以是属性选择器、类选择器或标签选择器。 下面是一个示例: ```html <div appCustomDirective>Custom Directive Example</div> ``` 在上面的示例,我们使用 `[appCustomDirective]` 属性选择器将自定义指令应用到了 `<div>` 元素上。 3. 使用指令提供的功能: - 在指令可以定义各种功能,如修改元素样式、监听事件、操作 DOM 等。 - 在构造函数可以注入依赖,如 `ElementRef` 用于操作元素。 在上面的示例,我们在指令类的构造函数注入了 `ElementRef`,使用它来获取指令所应用的元素,并修改其背景颜色为黄色。 通过以上步骤,你就可以创建和使用自定义指令了。可以根据需求在指令实现各种功能,并在模板应用指令来扩展元素的行为和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值