如何与不同的控制器共享数据

时间:2015-10-21 07:56:03

标签: angularjs

我是角度js的新手。我知道有关控制器的信息,它会上传数据进行查看。

我知道的样本控制器,

angular.module('marksTotal',[]).controller('totalMarks',function($scope){
      $scope.totMarks=$scope.sub1+$scope.sub2+$scope.sub3+$scope4.sub;
      $scope.totMarks+=$scope.sub5;
      $scope.avgMarks=$scope.totMarks/5;
  }    

我怀疑如何在同一页面中与不同的控制器共享数据& b / w不同的页面。

你能否澄清我的怀疑

感谢。 拉维

2 个答案:

答案 0 :(得分:0)

最好的方法是长期为此编写服务。

但为了让你入门,你可以把东西放在$ rootScope中:

$rootScope.data.var = someValue

并从任何范围访问此值。

答案 1 :(得分:0)

您可以通过模态窗口打开不同的页面和控制器。我使用this one。基本上,您在模态窗口中打开模板和控制器,并确定在其中传递或返回的数据。我的建议是阅读Github项目以获取更多信息。它只是在回调中向前和向后传递$ scope变量。如果我不清楚,请道歉。我几个月没用过Angular了。

我的一个例子:

$scope.domain = {};
$scope.edit = function (domain, size) {
    ModalService.showModal({
        templateUrl: '/assets/layouts/domain-edit-template.html',
        controller: 'domainsEditTemplate',
        size: size,
        inputs: {
            item: domain
      }
    })
    .then(function (modal) {
        modal.close.then(function (selectedObject) {
            if(selectedObject.save == "update") {
                console.log(selectedObject);
                domain.template_id = selectedObject.templateId.template_id;
                domain.template_name = selectedObject.templateId.name;
            } else if(selectedObject.save == 'insert') {
                selectedObject.template_name = selectedObject.templateId.name;
                selectedObject.template_id = selectedObject.templateId.template_id;
                $scope.domains.push(selectedObject);
            }
        });
    });
};

否则我建议您学习如何使用AngularJS路由在URL中发送参数。