angularjs向指令中传递数据

我们在定义一个指令的时候,有些情况下,希望一些如url的信息不会混在指令内部,以为使用指令的人带来更好的体验。在这种情况下我们可以为指令提供一个公共的接口。方法如下。

定义一个指令:

angular.module('myApp', [])
    .directive('myDirective', function() {
        return {
            restrict: 'E',
            replace: true,
            template: '<a href="#">click here!</a>'
        }
    });

并将它使用在html页面中:

<body ng-app="myApp">
   <my-directive></my-directive>
</body>

创建子作用域,代码修改为:

angular.module('myApp', [])
    .directive('myDirective', function() {
        return {
            restrict: 'E',
            replace: true,
            scope: {
                myUrl: '@', //绑定策略
            },
            template: '<a href="{{myUrl}}">click here!</a>'
        }
    });

我们在作用域对象内部把myUrl值设置为@这个绑定策略。这个绑定策略告诉AngularJSDOMmy-url属性的值复制给新作用域对象中的myUrl属性。

然后修改html文件为:

<body ng-app="myApp">
   <my-directive my-url="http://www.baidu.com"></my-directive>
</body>

结构如我们想象的一样,href中成功添加了我们指定的链接,点击后成功跳转到该页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值