Получение данных перед загрузкой страницы в диалоговом окне на узле $http in.js

Я пытаюсь разработать динамическое диалоговое окно. Текст приходит на $http.получить ответ. но как-то не получается. Небольшая помощь будет по достоинству оценена. Я использую node.JS и угловой.

angular.module('rugCoPro')

.controller('DashboardController', [
    '$scope',
     'Session',
     '$location',
     'ObjectUtils',
     '$http',
     '$state',
     '$stateParams',
     '$mdDialog',
     function(
        $scope,
        session,
        $location,
        ObjectUtils,
        $http,
        $state,
        $stateParams,
        $mdDialog
    ){


    if(!session.isAuthenticated()){
        session.logout();
    }

    $http.get("api/models/department").success(function(response, status, headers){
        $scope.app_modes = response;
    });

    $scope.load = function(ev) {
        $mdDialog.show({
          controller: DialogController,
          template:
           '<md-dialog aria-label="List dialog">' +
           '  <md-dialog-content>'+
           '    <md-list>'+
           '      <md-list-item ng-repeat="item in items">'+
           '       <p>{{item.name}}</p>' +
           '      </md-list-item>'+
           '    </md-list>'+
           '  </md-dialog-content>' +
           '</md-dialog>',
          parent: angular.element(document.body),
          targetEvent: ev,
          clickOutsideToClose: true,
          locals: {
           items: $scope.app_modes
         },
        });
      };

    function DialogController($scope, $mdDialog) {
        $scope.items = $scope.app_modes;
        $scope.hide = function() {
          $mdDialog.hide();
        };

        $scope.cancel = function() {
          $mdDialog.cancel();
        };

        $scope.answer = function(answer) {
          $mdDialog.hide(answer);
        };
    }
}]);

Шаблон кода ejs

<md-content ng-controller="DashboardController as ctrl" class="md-padding" ng-init='load()'>

    <div layout="row" layout-align="start center"> 
        <h6 class="md-headline">{{"Turco Persian Rug Co."| uppercase}}</h6>
    </div>

</md-content>

Я пытаюсь отобразить список ‘app_modes’ в MD-диалоговом окне.

1 ответ

  1. Самое простое решение вашей проблемы:

    $http.get("api/models/department").success(function(response, status, headers){
            $scope.app_modes = response;
            $scope.load();
        });
    

    И вы теряете ng-init= » load ()». Он сначала загрузит данные, а затем покажет диалоговое окно.