0

Я видел подобные вопросы, но у меня проблемы с их применением в моей ситуации, поэтому я ценю любую помощь, которую вы можете мне дать. Я использую директиву angular-nvd3 для создания 4 разных типов диаграмм в разных контроллерах. Прямо сейчас, я добавляю их к каждому представлению контроллера &, как показано в их основном примере.Как написать директиву для установки атрибутов другой директивы?

angular.module('myApp', ['nvd3']) 
    .controller('myCtrl', function('$scope'){ 
     $scope.options = { /* JSON data */ }; 
     $scope.data = { /* JSON data */ } 
    }) 

и в HTML:

<div ng-app='myApp'> 
    <div ng-controller='myCtrl'> 
    <nvd3 options='options' data='data'></nvd3> 
    </div> 
</div> 

Я использую те же 4 версии $scope.options снова и снова, поэтому я хотел бы, чтобы написать набор директив, которые позволили бы мне писать это в HTML вместо (и только определяет $scope.data в контроллерах).

<nvd3 typeA data='data'></nvd3> 

Я видел примеры того, как добавлять новые атрибуты и указать их область видимости переменных, но как указать атрибут к неподвижному объекту JSON?

+1

что 'typeA'? Является ли это директивой, которая применяет определенный предопределенный набор параметров? –

ответ

1

Вы можете создать директиву, которая облегает директиву nvd3 и добавляет данные варианты, как этот

HTML:

<typea data='data'></typea> 

JavaScript:

angular.module('myApp').directive('typea', function() { 
    return { 
     scope : { 
      data:"=" 
     }, 
     restrict: 'E', 
     template: "<nvd3 options='options' data='data'></nvd3>" , 
     link: function($scope) { 
      $scope.options = { /* JSON data */ } 
     } 
    }; 
}); 
Смежные вопросы