无法将数据从一个控制器移动和跟踪到另一个angularjs

Unable to move and track data from one controller to another angularjs

本文关键字:移动 控制器 跟踪 angularjs 另一个 一个 数据      更新时间:2023-09-26

女士们,先生们,我在这里堆叠:我正在尝试做以下事情1) 从数据库中获取特定子类别的业务。我成功地做到了。2) 我从CategoryCtrl中得到它们,我想在加载了SearchCtrl的搜索页面上显示它们。我在CategoryCtrl中看到了数据,但在SearchCtrl中没有跟踪到它。在SearchCtrl中什么也看不到:这是我的代码。有人请帮我解决

Html

<div class="col-lg-12 col-sm-12 col-md-12 col-xs-12" ng-controller="CategoryCtrl"> 
    <a hfref="#" style="text-decoration:none" ng-click="getBusinesses(sub_category.id)"   class="badblack">{{sub_category.name}}</a>
</div>

javascript

.controller('CategoryCtrl', ['$scope','$rootScope','sharedproperties',function($scope,$rootScope,sharedproperties){
    $scope.getBusinesses=function(sub_category_id)
        {
            $http.get($scope.BaseURL+"classes/util.php?sub_category_id="+sub_category_id+"&transaction=get_businesses").then(function(results){
                    alert("results are"+results);
                    console.log("jsonstring axctualyy  is",results);
                    $scope.bus_es = results;
                    sharedProperties.setProperty($scope.bus_es.data);//successfully sets property
                    console.log("sharedProperty is",sharedProperties.getProperty());
                    $rootScope.$broadcast("CallSubcategoryBusinesses", $scope.bus_es.data);
                    window.location.href=BaseURL+"search.php";
            });

        }
}])
.controller('SearchCtrl',['$scope','$rootScope','sharedproperties',function($scope,$rootScope,sharedproperties)
{
    $rootScope.$on("CallSubcategoryBusinesses", function(event,data){
              //$scope.search_subCategory_businesses();
              //$scope.businesses=data;
              console.log("the data from categories is is",data)
             // alert($scope.search_subCategory_businesses());
        });
}])
.factory('sharedproperties',function()
{
        var property = '';
        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };

})

您可以查看以下fiddle

http://jsfiddle.net/HEdJF/1605/

myApp.factory('Data', function(){
    return { FirstName: '' };
});
myApp.controller('FirstCtrl', function( $scope, Data ){
    var mydata="Factory";
  Data.FirstName=mydata;
  $scope.Data = Data;
});
myApp.controller('SecondCtrl', function( $scope, Data ){
    $scope.Data = Data;
});

数据共享可以通过使用工厂或服务来完成。。。

如果您想在控制器之间共享数据,您需要将这些数据保存在服务中,以便两个控制器都可以访问这些数据。另一种方法是使用角度信号框架——例如,在给定事件的第二个控制器中,它读取事件中传递的数据。