如何以角度分享视图之间的数据

时间:2016-02-25 09:31:46

标签: angularjs

我正在做一个角度项目,我通过调用该函数来加载新视图。这件事情很好。现在我的要求是我希望一些数据从同一个函数转移到新视图。使用相同的控制器。我在这里展示了演示代码。



$scope.passID = function(id){
    console.log(id);
    $state.go("view", {id: $scope.id });
}




1 个答案:

答案 0 :(得分:0)

如果您使用的是同一个控制器,则可以在两个视图中访问$scope个变量。但是,如果您有2个controllers的2个观看次数,则可以在$scope服务工厂之间共享controllers变量(数据) 。但是,$scope变量是controller本身的本地变量,因此将数据设置到服务或工厂以了解该特定变量。我更喜欢使用工厂,简单而平滑的黄油。如果您在单独的文件中使用工厂服务,则需要将文件包含在index.html中。

   app.controller('Ctrl1', function($scope, myService, $state) {
    $scope.variable1 = "One";
    myService.set($scope.variable1);
    $state.go('app.thepagewhereyouwanttoshare'); //go to the page where you want to share that variable.
});

app.controller('Ctrl2', function($scope, myService) {
    console.log("shared variable " + myService.get());
});
.factory('myService', function() {
    function set(data) {
        products = data;
    }

    function get() {
        return products;
    }

    return {
        set: set,
        get: get
    }

})