Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs在页面之间传输数据_Angularjs_Ionic - Fatal编程技术网

angularjs在页面之间传输数据

angularjs在页面之间传输数据,angularjs,ionic,Angularjs,Ionic,我的英语很差,一开始,我从服务器上传数据,我得到了$rootScope.YD作为数据传输。但是当我在第二页使用YD时,它不起作用。你能帮我吗 .controller('yd_homeCtrl',function($rootScope, $scope, $state, $http,$ionicActionSheet, $ionicModal) { $scope.getReadList = function () { var url = $rootScope.root

我的英语很差,一开始,我从服务器上传数据,我得到了$rootScope.YD作为数据传输。但是当我在第二页使用YD时,它不起作用。你能帮我吗

.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。这将发布一个事件,其中包含您指定的名称和您解析的数据。在第一个控制器上执行此操作。在第二个控制器上,使用$rootScope.on侦听事件


但我建议使用一种服务,它是内存和性能方面最好的解决方案

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


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

创建一个服务,在页面之间传输数据,并与控制器共享。在两个不同的页面重新加载之间不会保存rootScope。除非您使用的是角度布线。你需要发布更多的代码。我有人写了旧代码,我遵循他的代码编写。非常感谢!但我是爱奥尼亚和安格拉斯的新手。几天前,我正在用object-c开发iOS。我以前没有学过javascript。那么,你能为我写一个演示吗?非常感谢!它起作用了!我写错了{{param}},现在可以正常显示了。无论如何,谢谢!别担心。你的问题解决了吗?如果你愿意,我可以为你写一个例子/演示。谢谢,我只是在我看来写错了东西……但还有更多的问题等着我去解决。但在中国,很少有人使用Angularjs,没有人指导我,但我有信心!再次谢谢你,不用担心。如果您需要任何关于angular js的帮助,请随时咨询我。我很乐意帮助你。