Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Jquery 在angularJS中获取更新的Json数据_Jquery_Json_Angularjs - Fatal编程技术网

Jquery 在angularJS中获取更新的Json数据

Jquery 在angularJS中获取更新的Json数据,jquery,json,angularjs,Jquery,Json,Angularjs,我在同一页中使用两个控制器 第一个控制器有两个选项卡。第一个选项卡有联系人列表,第二个选项卡有收藏夹列表 在第一个选项卡中。我正在显示所有数据。 在第二个选项卡中,我显示了基于isFavorites字段的数据 ng-show="user.isFavourites" 如果是真的。它正在显示 当我单击第一个选项卡上的联系人列表时。弹出窗口将显示。在弹出窗口中,我有一个按钮是AddFav。Popup是第二个控制器 当我点击AddFav按钮时,我的设置是Favorites是true 所以我的问题是 设

我在同一页中使用两个控制器

第一个控制器有两个选项卡。第一个选项卡有联系人列表,第二个选项卡有收藏夹列表

在第一个选项卡中。我正在显示所有数据。 在第二个选项卡中,我显示了基于isFavorites字段的数据

ng-show="user.isFavourites"
如果是真的。它正在显示

当我单击第一个选项卡上的联系人列表时。弹出窗口将显示。在弹出窗口中,我有一个按钮是AddFav。Popup是第二个控制器

当我点击AddFav按钮时,我的设置是Favorites是true

所以我的问题是

设置IsFavorites后,当我转到第二个选项卡时,数据将显示为上次更新的字段

我的表格是

<div id="userListControl">
  <div id="tab1">...</div>
  <div id="tab2">...</div>
</div>
<div id="userDetailsControl">

</div>


userDirectory.controller("userListControl", function($scope,$rootScope, $http)
        {
            $http.get('data/userData.json').success (function(data){
               $scope.users = data;
            });

            $scope.selectUser = function(user){
                $rootScope.selectedUser = user;
                showPopup();
            }
        });
    });

    // Contact Details Controller with Watch()
    userDirectory.controller("userDetailsControl", function($scope, $rootScope){
        $rootScope.$watch("selectedUser", function(newVal){
            $scope.user = newVal;
        });

        $scope.addFav = function(user){
            $rootScope.selectedUser.isFavourites = true;
            console.log($rootScope.selectedUser)
        }
    });

...
...
controller(“userListControl”,函数($scope、$rootScope、$http)
{
$http.get('data/userData.json').success(函数(数据){
$scope.users=数据;
});
$scope.selectUser=函数(用户){
$rootScope.selectedUser=user;
showPopup();
}
});
});
//带手表的控制器的详细联系方式()
controller(“userDetailsControl”,函数($scope,$rootScope){
$rootScope.$watch(“selectedUser”,函数(newVal){
$scope.user=newVal;
});
$scope.addFav=函数(用户){
$rootScope.selectedUser.isFavorites=true;
console.log($rootScope.selectedUser)
}
});

在第一个控件中,单击联系人列表时使用Selectuser,它将显示弹出窗口中的数据

我得到了解决方案

我用广播来做这个

在第二控制器中

$scope.addFav = function(user){
            $scope.user.isFavourites = true;
            $rootScope.$broadcast('addFavourites', $scope.user);
        }
$scope.$on('addFavourites', function (event, data) {
// Here I am doing my stuff..
});
在第一控制器中

$scope.addFav = function(user){
            $scope.user.isFavourites = true;
            $rootScope.$broadcast('addFavourites', $scope.user);
        }
$scope.$on('addFavourites', function (event, data) {
// Here I am doing my stuff..
});

它可能是不同的复制品,我在两个控制器之间传递控件。我已经在watch目录中使用了rootScope。同样,我必须在Watch中使用rootScope,您应该尝试事件广播或控制器通信服务。