angularjs在页面之间传输数据 [英] angularjs Transfer data between pages

查看:231
本文介绍了angularjs在页面之间传输数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的英语非常糟糕,起初控制器,我发布数据从服务器,我得到了$ rootScope.YD传输数据。但是当我在第二页使用YD时,它不起作用。你帮我吗?

My English is very bad,at first Controller,I post data form The server,and i got a $rootScope.YD for Transfer data .but when i use the YD in the second page,it does't work.can you help me ?

.controller('yd_homeCtrl',function($rootScope, $scope, $state, $http,$ionicActionSheet, $ionicModal)
{
    $scope.getReadList = function ()
    {
        var url = $rootScope.rootUrl + "/read.php";
        var data = {
            "func":"getReadList",
            "unionid":$rootScope.userinfo.unionid,
            "fr":1
        };
        encode(data);

        $rootScope.LoadingShow;

        $http.post(url, data).success(function (response)
        {
            $rootScope.LoadingHide();
            $rootScope.YD=response.data.result[0];
            $state.go('yd_improve')
        }).error(function (response, status)
        {
            $rootScope.LoadingHide();
            $rootScope.Alert('连接失败![' + response + status + ']');
            return;
        });
    }
})

.controller("yd_improveCtrl",function($rootScope, $scope, $state, $http, $ionicActionSheet, $ionicModal, $stateParams, $interval, $sce, $ionicHistory,$ionicSlideBoxDelegate)
    {
    $scope.text="";
    angular.forEach($rootScope.YD,function(value,key){
        if(key==0)
        {
        //alert(1111111);
        //alert(value.text);
            $scope.text=value.text;
            alert($scope.text);
        }

    });

   });

有app.js州:

 .state('yd_improve', {
    cache: false,
    url: '/yd_improve/:id',
    onExit: function ()
    {
        var v = document.getElementById("audio");
        v.pause();
        v.src = "";
    },
    templateUrl: 'templates/yd_improve.html',
    controller: 'yd_improveCtrl'
})


推荐答案

使用$ broadcast服务。它是广播事件和在控制器之间传递参数的最可靠的解决方案。

Use $broadcast service. It's the most reliable solution for broadcasting events and passing parameters between controllers.

不要依赖于在服务中存储数据,因为在页面刷新时,服务也会刷新,并且您将丢失存储在服务变量中的数据。因此,维持服务状态是非常不受推荐的。请改用$ broadcast。

Don't rely on storing data in service because on page refresh, service also gets refreshed and you will lose the data stored in service's variable. So maintaining state in service is highly unrecommended. Use $broadcast instead.

这篇关于angularjs在页面之间传输数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆