在指令中使用$ watch

问题描述 投票:0回答:2

我已经使用highchart.js通过使用几个问题的解决方案绘制了图表。我了解指令的基本用法。但是,对于highchart.js,我在这里不太了解这段代码:

app.directive('highchart', function () {
    var direc = {};
    var link = function (scope, element, attributes) {
        scope.$watch(function () {
            return attributes.chart;
        }, function () {
            var charts = JSON.parse(attributes.chart);
            $(element[0]).highcharts(charts);
        })
    }
    direc.restrict = 'E';
    direc.link = link;
    direc.template = '<div></div>';
    //the replace method replaces the content inside the element it is called
    direc.replace = true;
    direc.scope = {};
    return direc;
})

Charts属性将接受图表属性的JSON数组。

有人能解释一下函数内部发生了什么吗?谢谢您的阅读。

angularjs highcharts
2个回答
1
投票

$ watch用于监视特定字段上的更改。在上述情况下,将在$ watch函数的第一个参数中监视attributes.chart,第二个参数实际检查修改后的数据并对其进行操作。您还可以在官方的角度文档中找到$ watch可以使用的其他选项:https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope#$ watch


0
投票

$ watch监视模型变更,一旦模型变更,更新的值从下面的代码中获取,并且根据要求,可以执行所需的操作。

$ scope。$ watch('ng-model-name',function(newval,oldval){如果(newval <0){$('#modelCustomer').modal('show');}});

© www.soinside.com 2019 - 2024. All rights reserved.