Controller by angular file js [closed]

1
(function () {
    'use strict';

    modulo
            .controller("CarregaCamposController", CarregaCamposController)
            .service("CarregaCamposService", CarregaCamposService);

    function CarregaCamposController($scope, CarregaCamposService) {

        var dados;
        var tab;
        var campos = [];

        dados = CarregaCamposService.getJson();

        dados.forEach(function (val, key) {
            if (key != 0) {// posição 0 do json sempre é preenchida com o nome da fabrica de relatórios
                //montagem da tabela de campos para montagem do relatório
                if (tab === "" || tab != val.descricao[0]) { // Gera uma linha classificando os campos entre suas tabelas
                    campos.push({id: val.id[1], desc: val.descricao[1], tab: val.descricao[0], ct: "1"});
                    tab = val.descricao[0];
                } else {
                    campos.push({id: val.id[1], desc: val.descricao[1], tab: val.descricao[0], ct: "0"});
                }
            }
        });

        $scope.campos = campos;

        $scope.insereRemove = function (id) {
            alert(id);
        };

    }



    function CarregaCamposService($http) {

        //service para trazer os dados do json de campos do relatório
        this.getJson = function(){
            this.file = $http.get('json.php').then(function (result) {
                if (result.status == 200) {
                    return result.data;
                } else {
                    alert("Erro ao carregar o arquivo JSON!");
                }

            });
        };
    }

})();

In the service return http result.data comes correct, an array of obejtos, if I return it to a variable inside the controller it already gets as undefined

This is the first error

    
asked by anonymous 28.09.2017 / 14:23

1 answer

0

First check that you have imported script of your controller into tag <script into html . Change the declaration of your controller to find the module registered in AngularJS by name. After that declare the function you are using to construct your controller and not just the contents of it. These guidelines will look something like this:

//main.js
(function () {
  angular.module('Relatorio',[]);
})();

//make_controller.js
(function () {
  'use strict';

  angular
    .module('Relatorio')
    .controller('CarregaCamposController', CarregaCamposController);

  CarregaCamposController.$inject = ['$scope'];

  function CarregaCamposController($scope) {
      $scope.teste = 'teste 2';
  }
})();

//form_controller.js
(function () {
  'use strict';

  angular
    .module('Relatorio')
    .controller('FormularioController', FormularioController);

  FormularioController.$inject = ['$scope'];

  function FormularioController($scope) {
    function CarregaCamposController() {
      $scope.teste = 'teste 2';
    }
  }
})();
    
28.09.2017 / 14:32