Jason
Jason

Reputation: 1161

combine two scopes in angular

I have two scopes and need to combine them. Does anyone know the best way to do this? below are the two scopes. the second one comes from a service

The first scope, retrieves info from database using PHP SLIM RESTful API

Data.get('posts').then(function(data){
        $scope.posts = data.data;
    });

The second scope retrieves info from database via a service

dataShare.getconfigs().then(function(data){
        $scope.configs = data;
    });

UPDATE:
When I open the modal to edit I only get the $scope.posts. I am not currently passing through the $scope.configs

$scope.open = function (p,size) {
        var modalInstance = $uibModal.open({
          templateUrl: 'views/postsEdit.html',
          controller: 'postsEditCtrl',
          size: size,
          resolve: {
            item: function () {
              return p;
            }
          }
        }); ...

Upvotes: 2

Views: 652

Answers (1)

dfsq
dfsq

Reputation: 193301

The problem is that $modal.open will create new isolated scope which will be used inside of modal controller and template. This new scope is going to be a direct child of the $rootScope, and thus it will not inherit from your $scope. However, what you want is to inherit from the $scope object from which you open a modal. For this configure modal like this:

$scope.open = function(p, size) {
  var modalInstance = $uibModal.open({
    templateUrl: 'views/postsEdit.html',
    controller: 'postsEditCtrl',
    size: size,
    scope: $scope, // <-- use $scope as a parent to for modal scope
    resolve: {
      item: function() {
        return p;
      }
    }
  });
};

Upvotes: 1

Related Questions