0
回答
不同页面之间的Controller数据共享
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
我的Js代码:
var app = angular.module("myApp",[], function ($provide) {
    $provide.factory('Data', function () {
        return {
            message : "hello world"
        };
    });
});
/**
 * 数据共享 采用factory 或者service 是因为 factory是单例的, 且$scope.data1 只是一个引用,对象本身仍在factory中。
 */
app.controller("firstController", function ($scope, Data) {
    $scope.likeCssData = "Lee";
    $scope.data1 = Data;
    $scope.likeCssObj = {message : "Lee"};
}).controller("secondController", function ($scope, Data) {
    $scope.data2 = Data;
    //如果你这样写,引用的是一个基本类型,所以修改兄弟的值,不影响本身的值。
    $scope.likeCssData = $scope.$$prevSibling.likeCssData;
    //两者指向同一个对象。
    $scope.likeCssObj =  $scope.$$prevSibling.likeCssObj;

    $scope.goDistance = function () {
        location.href = "index1.html";
    }
    //thirdController 中的Data值不随前面的变化而变化。
}).controller("thirdController", function ($scope, Data) {
    $scope.dataDistance = Data;
})

其中的thirdController是另一个页面的控制器。我想问一下为什么在secondController中操作Data 已经改变而 thirdController 却还没有改变。Data不是一个引用吗?实体不是已经改变了吗?

举报
vencents
发帖于9个月前 0回/129阅
顶部