【问题标题】:Re-load/initiate controller on event in Angular在 Angular 中的事件上重新加载/启动控制器
【发布时间】:2014-06-22 01:05:53
【问题描述】:

我有一个控制器如下。它使用 d3 指令绘制折线图并通过服务从 JSON 请求中获取数据。

myApp.controller('DownloadsLineCtrl', ['$scope', 'requestService', function($scope, requestService){
  $scope.title = 'Downloads over Time';
  $scope.tooltip = 'Test tooltip';
  requestService.getDownloadsLineData(global_m, global_y).then(function(data) {
        $scope.d3Data = data;
    });
}]);

我还有一个重新加载控件,当变量 global_m 和 global_y 发生变化时,它应该重新加载控制器。我该如何实施呢?我不知道从哪里开始...我来自 JQuery 思维方式,并且很难对我的大脑进行 Angular 化。

【问题讨论】:

    标签: javascript jquery angularjs d3.js


    【解决方案1】:

    您不必重新加载控制器 m8。 $scope.$watch 是你需要的:

    https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch

    例子:

    $scope.$watch('global_m', function(newValue, oldValue) {
      // global_m was changed, new value is 'newValue'
    });
    

    你必须先声明 $scope.global_m,才能使用 $watch 观察者。您可以对要查看的其他变量执行相同操作。

    【讨论】:

    • 酷!抱歉,是否有一个简单的伪代码示例或参考可以链接到我?不太清楚如何同步。
    • 用一个例子编辑了我的答案;你需要在 $scope 上声明一些变量,当它们改变时你可以观察它们并运行你需要的任何东西。
    • 好的,我试试。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多