Javascript Phonegap&AngularJS-ngCookies在Android上不起作用

Javascript Phonegap&AngularJS-ngCookies在Android上不起作用,javascript,android,angularjs,cordova,Javascript,Android,Angularjs,Cordova,我有一个带有以下ng click功能控制器1的按钮: attachToChat: function(id, what, how){ //save attach type to cookie and redirect to chat detail view $cookieStore.put('attachToChat', {id: id, what: what, how: how }); $scope.fn.goTo('chat/'+id);

我有一个带有以下ng click功能控制器1的按钮:

   attachToChat: function(id, what, how){
        //save attach type to cookie and redirect to chat detail view
        $cookieStore.put('attachToChat', {id: id, what: what, how: how });
        $scope.fn.goTo('chat/'+id);
    }
。。。其中fn.goTo使用$location更改当前页面

当页面成功更改时,我有以下cookie处理程序控制器2:

//Handle attach file to chat
//
var attachInfo = $cookieStore.get('attachToChat');
if(attachInfo) {
    //remove attachToChat info from cookie
    $cookieStore.remove('attachToChat');

    $timeout(function(){
        $scope.alert('Attach: '+ attachInfo.what + ' -> ' + attachInfo.how);
    },1000);
}
在这里,我将警报函数包装在$timeout内,因为我在routechange之后收到一个摘要进行中错误&警报通知在routechange之前显示

问题 在android设备4.4.4和模拟器5.0上,我没有收到任何警报通知

工作内容:iOS 7和8 simualtor、所有浏览器和Phonegap开发者应用程序内部

我尝试将整个块包装在$timeout中,并在controller1attachtochat函数中执行了相同的操作。问题依然存在

***更新:这似乎与AngularJS无关,但与Phonegap有关,尤其是Android平台。我用纯JS document.cookie做了一些测试,但它也不起作用

变通办法 使用html5本地存储和会话存储,而不是ngCookies模块。 我使用较旧的1.3.x angularjs版本进行了一些测试,但问题仍然存在。这可能与angularjs或phonegap有关。。 这是我为本地和会话存储提供的服务,以防有人想快速解决此问题:

MYAPP.factory('storageLocal', ['$window', function($window){
    var storageLocalMethods = {};

    //fn: set
    //desc: set a local storage variable
    storageLocalMethods.set = function(name, value){
        $window.localStorage.setItem(name, angular.toJson(value));
    }

    //fn: get
    //desc: get a local storage variable
    storageLocalMethods.get = function(name){
        return angular.fromJson($window.localStorage.getItem(name));
    }

    //fn: remove
    //desc: remove a variable from local storage
    storageLocalMethods.remove = function(name){
        $window.localStorage.removeItem(name);
    }

    return storageLocalMethods;

}]);

MYAPP.factory('storageSession', ['$window', function($window){
    var storageSessionMethods = {};

    //fn: set
    //desc: set a session storage variable
    storageSessionMethods.set = function(name, value){
        $window.sessionStorage.setItem(name, angular.toJson(value));
    }

    //fn: get
    //desc: get a session storage variable
    storageSessionMethods.get = function(name){
        return angular.fromJson($window.sessionStorage.getItem(name));
    }

    //fn: remove
    //desc: remove a variable from session storage
    storageSessionMethods.remove = function(name){
        $window.sessionStorage.removeItem(name);
    }

    return storageSessionMethods;

}]);

为什么不使用$rootScope呢?我不想夸大$rootScope,我喜欢保持它干净,正如这里有人说的,$rootScope不应该用于在我们有服务和工厂之类的东西时共享变量。