微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AngularJS中没有隔离范围的指令范围属性

是否有一种继承父范围的方法,同时使用传递的属性进行扩展?

我想直接从模板传递参数到可重用指令,而不必更改链接函数中的DOM。

例如:

<form-input icon="icon-email" label="email" ng-model="data.input"></form-input>

对于这样的指令:

<div class="form-group">
      <label>{{label}}</label>
      <div class="input-group">
        <div class="{{icon}}">@</div>
        <input class="form-control" placeholder="Email" ng-model="mail.email">
      </div>
    </div>

ng-model在父范围内,在这种情况下控制整个表单,但我不认为有必要将样式属性存储在控制器中。

有没有直接在模板中传递参数而不创建隔离范围的方法

您将无法“扩展”父范围。然而,您的目标可以通过使用在您的指令的链接功能中注入的指令标签属性来实现。

所以例如为了附加您的标签变量,您的指令的链接功能如下所示:

link: function ($scope,$element,$attributes) {
         $scope.label = $scope.$eval($attributes.label);
        }

您可以查看下面的广告空间进行现场演示。
http://plnkr.co/edit/2qMgJSSlDyU6VwdUoYB7?p=preview

原文地址:https://www.jb51.cc/angularjs/144159.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐