angularjs重写控制器没有工厂

时间:2016-12-14 13:07:11

标签: javascript angularjs ionic-framework controllers

我正在开发一个从服务器接收JSON数组并以特定方式分割数据的应用程序,我有一部分代码可以工作,如果我单独使用但是如果我试图将其插入应用程序中不起作用。

这是我的代码

ionicApp.controller('DefaultController', DefaultController)
  .factory('dataService', dataService);

DefaultController.$inject = ['dataService', '$http'];

function DefaultController(dataService, $http) {
  var vm = this;
  console.log("Dentro ctrl");
  getEvents();

  function getEvents() {
      console.log("Dentro getEvents");
    return dataService.getEvents()
      .then(function (data) {
          console.log("data: " + data);
        vm.data = data;
        console.log("vm.data: " + vm.data);
        return vm.data;
      });
  }
    vm.submit = function (){
        console.log("funzione");
        console.log(vm.form);
        var data = vm.form; // IMPORTANT
        //console.clear();
        var link = 'http://localhost/<path>/api/apiDoFix.php';
        var mail = window.localStorage.getItem("mail");
        var scelta = window.localStorage.getItem("scelta");
        console.log(data);
        console.log ("EMAIL" + mail);
        console.log ("SCELTA" + scelta);
        $http.post(link, {giorno: data.giorno, ora: data.ora, mail: mail, scelta: scelta})
            .then(function (res){
                console.log("Dentro http.post");
                var response = res.data;
                if (response != 'F'){
                    console.log("Dentro if");
                    console.log(response);
                    //window.location.href ="/#/main";
                } else {
                    console.log("Dentro else");
                }
            });
    };
}

dataService.$inject = ['$http'];

function dataService($http) {
    console.log("qua");
  var service = {
    getEvents: getEvents
  };

  return service;

  function getEvents() {
      console.log("qua2");
    var config = {
      transformResponse: function (data, headers) {
        var result = {
          events: [],
          schedules: []
        };
        var events = JSON.parse(data);
        var dates = [];
        console.log("qua3");
        for (var i = 0; i < events.length; i++) {
          if (dates.indexOf(events[i].day) === -1) {
            var date = events[i].day;
            dates.push(date);
            result.events.push({
              date: date
            });
          }

          result.schedules.push({
            date: events[i].day,
            time: events[i].time
          });
        }
        console.log("result: " + result);
        return result;
      }
    };

    return $http.get('http://localhost/ShuttleFIX/api/apiTimes.php', config)
      .then(getEventsCompleted)
      .catch(getEventsFailed);
    function getEventsCompleted(response) {
        console.log("response " + response.data);
      return response.data;
    }

    function getEventsFailed(error) {
      console.error(error);
    }
  }
}

是否可以在不使用工厂的情况下在控制器功能中重写此代码?

感谢的

0 个答案:

没有答案