【问题标题】:When I use $scope.watch in angular, I have an issue in passing data当我在角度使用 $scope.watch 时,我在传递数据时遇到问题
【发布时间】:2016-10-04 03:49:49
【问题描述】:

我使用 $scope.watch 并设置并获取将一个数据从一个控制器传递到另一个控制器。这很好用,但是当我使用不同的 html 文件执行此操作时,第一次单击时不会传输数据。因为浏览器已刷新。但是,当我单击 chrome 中的返回箭头并设置一个值并单击时,我可以在第二页中获取该值。我该如何解决这个问题。请告诉我解决方案。

var data = {
    Quantity: ''
};
return {
    getQuantity: function() {
        return data.Quantity;
    },
    setQuantity: function(quantity) {
        data.Quantity = quantity;
    }
};
.controller('DetailsCtrl', function($scope, $http, Data) {
    $scope.quantity = '';
    $scope.$watch('quantity', function(newValue50, oldValue50) {
        if (newValue50 !== oldValue50)
            Data.setQuantity(newValue50);
    });
})

.controller('FifthCtrl', function($scope, $http, Data) {
    $scope.$watch(function() {
        return Data.getQuantity();
    }, function(newValue50, oldValue50) {
        if (newValue50 !== oldValue50)
            $scope.quantity = newValue50;
    });

})

【问题讨论】:

    标签: javascript angularjs html


    【解决方案1】:

    如果您想在浏览器中存储不同会话之间的值,您可以将数量值添加到local storage

    这是一个 angularjs 服务/工厂示例

    app.factory('Data', function () {
    
        var data = {
            Quantity: ''
        };
    
        return {
            getQuantity: function () {
    
                if (localStorage.getItem("data") === null) {
                    data.Quantity = 0;
                } else {
                    var jsonData = localStorage.getItem('data');
                    data.Quantity = JSON.parse(jsonData);
                }
    
                return data.Quantity;
            },
            setQuantity: function (quantity) {
                data.Quantity = quantity;
                localStorage.setItem("data", JSON.stringify(data));
            }
        };
    });
    

    注意 1:在这种情况下,您实际上不需要对象“数据”,因为您将值存储在存储中,但我让它保持原样。

    注意2:localStorage不能存储对象等复杂类型,需要在存储之前将它们制作成字符串,这就是使用JSON.stringify()的原因。

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多