如何编写指令来设置另一个指令的属性?

时间:2015-04-11 17:06:47

标签: angularjs angularjs-directive angularjs-nvd3-directives

我见过类似的问题,但是我很难将它们应用到我的情况中,所以我感谢你能给我的任何帮助。我正在使用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编写它(并且只定义{{1在控制器中)。

$scope.data

我已经看过如何添加新属性并将它们指向范围变量的示例,但是如何将该属性指向固定的JSON对象?

1 个答案:

答案 0 :(得分: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 */ }
      }
  };
});