2013-06-14 6 views
2

В следующей директиве я хотел бы eval {{selectedForApproval.length}}. Это сработало, когда это не было директивой, но как только я включил это в директиву, я не уверен, как обрабатывать привязку.Как оценивать атрибут, содержащий {{}}

HTML: <button-large color="green" ng-click="completeWork()" label="Approve Selected ({{selectedForApproval.length}})"></button-large>

Директива:

directive('buttonLarge', function() { 
    return { 
     scope: false, 
     replace: true, 
     restrict: 'E', 
     template: '<button type="checkbox" class="buttonL"/>', 
     link: function (scope, element, attrs) { 
      var config = { 
       label: "Submit", 
       color: "Default" 
      }; 

      angular.extend(config, attrs); 

      element.addClass("b"+capitalize(config.color)); 
      element.html(scope.$parent.$eval(config.label)); 

      //capitalize first letter of string 
      function capitalize(s) { 
       return s[0].toUpperCase() + s.slice(1); 
      } 
     } 
    } 
}) 

ответ

1

Решение было использовать ... включение

<button-large color="green" ng-click="completeWork()">Approve Selected ({{selectedForApproval.length}})</button-large>

directive('buttonLarge', function() { 
     return { 
      scope: false, 
      replace: true, 
      restrict: 'E', 
      transclude: true, 
      template: '<button type="checkbox" class="buttonL" ng-transclude/>', 
      link: function (scope, element, attrs) { 
       var config = { 
        color: "Default" 
       }; 

       angular.extend(config, attrs); 

       element.addClass("b"+capitalize(config.color)); 

       //capitalize first letter of string 
       function capitalize(s) { 
        return s[0].toUpperCase() + s.slice(1); 
       } 
      } 
     } 
    }) 
Смежные вопросы