javascript - AngularJS 在指令中输出 Javascript

标签 javascript angularjs angularjs-directive morris.js

堆栈溢出的好心人大家好..

我正在尝试在 Angular 中创建一个指令,输出 javascript,我将用它来绘制莫里斯图。到目前为止我一直过得很艰难。代码如下:

面积图.js:

angular.module('areaChart', ['ui.bootstrap']).directive('areaChart', function() {
var directive = {};
directive.templateUrl = directivePath + '/charts/area-chart.html';
directive.restrict = 'EA';
directive.scope = {
    dealership: "=",
    chartdata: "="
};

directive.controller = function($scope) {
    $scope.ykeys = function() {
        var ykeys = [];
        angular.forEach($scope.chartData, function(d,k) {
            if(k != 'period') { ykeys.push(k); }
        });
        return "'" + ykeys.join("','") + "'";
    }
}

return directive;
});

还有,area-chart.html

<script>
Morris.Area({
    element: 'area-chart-fuckyou',
    xkey: 'period',
    ykeys: [{{ ykeys }}],
    labels: [{{ ykeys }}],
    hideHover: 'auto',
    pointSize: 2,
    resize: true,
    data: 'fuckyou' 
});
</script>

每当我尝试在输出的 JavaScript 中使用 Angular 替换时,都会收到意外的标记“{”错误。因此,当我尝试注入(inject) {{ykeys}} 时,它会抛出错误。我尝试更改 {{ykeys}} 以包含我想要在 IE 中返回的完整字符串 ['key1','key2'] 和其所有组合。我想我不明白 Angular 操作顺序是什么。有人可以帮助我吗?

最佳答案

您需要添加将进行图表初始化的link函数

directive.link = function(scope, element, attrs){
  new Morris.Area({
      element: element, //here you can attach direct element
      data: scope.data,
      ykey: scope.ykeys()
      labels: scope.ykeys(),
      hideHover: 'auto',
      pointSize: 2,
      resize: true,
      data: 'fuckyou' 

  });
}

关于javascript - AngularJS 在指令中输出 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967889/

相关文章:

JavaScript 性能 : Call vs Apply

javascript - 在 Javascript 中循环包含 Ajax 调用的函数

javascript - 不变违规 : Invariant Violation: requireNativeComponent: "RNCSafeAreaView" was not found in the UIManager. "

AngularJS Material 从左到右滑动 CSS3 动画

angularjs - tokenInput 作为 angular.js 指令

javascript - 我应该将我的代码称为游戏引擎吗?

javascript - 当用户滚动时AngularJS切换路径

javascript - 如何在我的 Angular 代码中使用 angular-sortable-view?

javascript - 自定义指令不会对属性更改使用react

javascript - 将 angularjs 指令添加到 native html 元素(输入文本、div、span 等)?