0

Я использую пользовательский интерфейс Angular Bootstrap и используя Modal. У меня есть переменная в моем основном контроллере, которая создается при загрузке контроллера.Значение углового модального значения не задано

$scope.links = { 
      imagesa: "" 
     }; 

Эта переменная не устанавливается со значением «плакать» после закрытия модальности.

Любые идеи, в чем проблема?

Вот функция, чтобы открыть модальное диалоговое

$scope.instagramModal = function (size) { 

     var modalInstance = $modal.open({ 
      templateUrl: 'instagramModal.html', 
      controller: 'InstagramModalInstanceCtrl', 
      size: size, 
      resolve: { 
       items: function() { 
        return $sails.get("/instagram/self").success(function (response) { 

         return response.data; 

        }).error(function (response) { 
         console.log('error'); 
        }); 
       } 
      } 
     }); 

     modalInstance.result.then(function (selectedItem) { 
      $scope.links.imagesa = 'Wept'; 

     }, function() { 
      $log.info('Modal dismissed at: ' + new Date()); 
     }); 
    }; 

Это контроллер MODALDIALOG

+0

Вы читали документацию? В нем четко указано: «scope - экземпляр области видимости, который будет использоваться для контента модального (фактически модальная услуга $ будет создавать дочернюю область предоставленной области). По умолчанию используется $ rootScope». Либо передайте свой объем в '$ modal.open', либо используйте' $ close (result) '. – user3707125

+0

$ scope.links.imagesa = "wept" не установлен, и ему присваивается значение $ scope.testthisset = "set". Есть ли проблема с тем, как я присваиваю значение объекту? У меня есть объект, инициализированный в области основного контроллера. – TommyK

ответ

0

Как вы закрываете модальный?

Вы должны закрыть модальный с .close() и не dismiss()

$modalInstance.close(); 
+0

Значение возвращается из модального контроллера. Его когда его в modalInstance.result.then функция, что основная переменная в глобальной области не установлена. Я обновил вопрос, чтобы показать модальный код – TommyK

0

Ваш items объект возвращает $promise объект, а не data объект, как вы ожидаете.

Я бы не разрешил такую ​​зависимость от инъекций. Вероятно, я бы включил звонок в службу $sails. Однако, если вы хотите сделать это, попробуйте использовать функцию success внутри вашего модального контроллера.

resolve: { 
    items: function() { 
     return $sails.get("/instagram/self"); 
} 

// на вашем модальный контроллер

.controller('InstagramModalInstanceCtrl', function ($scope, $modalInstance, items) { 

    items.then(function (response) { 
     $scope.instapics = JSON.parse(response.data); 
    }) 
}); 
Смежные вопросы