有没有办法知道指令中使用的模型的名称?

时间:2014-09-03 19:33:04

标签: angularjs angularjs-directive angularjs-scope directive angular-ngmodel

假设我有以下指令:

.directive("counter", function () {
            return {
                restrict: "E",
                scope:{
                    bindModel:'=ngModel'
                },
                templateUrl: "/directives/countertemplate.html"

和模板:

<div id="counter" ng-class="{true: 'twitter-counter'}[bindModel.length > 140]">
  {{140 - bindModel.length}}
</div>

有没有办法让我知道传递给指令的模型的名称:

 <counter ng-model="twitterPost"></counter>

例如我想从模板的上下文知道&#34; twitterPost&#34;被发送到模板,所以我可以执行一组不同于&#34; facebookPost&#34;

2 个答案:

答案 0 :(得分:1)

在链接功能中,您可以从元素中检索所有属性。的 DEMO

template: "<div ng-show='isTwitterPost'>Twitter</div><div ng-show='!isTwitterPost'>Facebook</div>",
link: function ($scope, element, attrs) {
  $scope.isTwitterPost = attrs.ngModel === 'twitterPost';
}

您应该添加额外的属性。

 <counter ng-model="twitterPost" is-twitter='true'></counter>

答案 1 :(得分:0)

你应该以角度方式进行,传递带有你需要的所有信息的对象,并在指令中处理逻辑 在这个小提琴:     //jsfiddle.net/HB7LU/6052/