【问题标题】:How to inform Angular directive that the scope values have changed?如何通知 Angular 指令范围值已更改?
【发布时间】:2015-01-23 23:38:00
【问题描述】:

我正在尝试创建一个将绘制 d3 条形图的角度指令。我无法确定在何处添加 D3 绘图代码,以便每次图表值更改时重新绘制图表(这些值与隔离范围相关联)。我试图将此代码放在链接函数中,但这只会呈现图表一次。每次范围更改时都不会调用它。请参阅下面的代码或完整的 jsFiddle here

function barchart() {    
    var directive = {
        link: link,
        restrict: 'A',
        scope: {
            values: '='
        }
    };
    return directive;

    function link(scope, element) {
        // Draw D3 chart here
        element.html(scope.values);
    };
}

【问题讨论】:

    标签: angularjs d3.js angularjs-directive isolate-scope


    【解决方案1】:

    你可以 $watch 观察变化:

    function link(scope, element){
       scope.$watch("values", function(newVal, oldVal){
          // do whatever you need to regenerate the graph
       });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多