来自具有http请求的数据库的离子反向数据

时间:2015-05-11 15:07:09

标签: javascript ionic-framework ionic

我想学习如何使用Ionic框架,

我已经制作了一个控制器,使用play 2.0作为Web服务器从数据库中获取一些数据。 这是我的工厂代码:

    .factory('Projects', function($http) {
    var projects =  [];
    return {
        getProjects: function() {



            $http.defaults.headers.post['Content-Type'] = 'application/json';       
            return $http({
                            method: 'POST', 
                            url: 'http://localhost:8101/getProjects', 
                            dataType: 'json',
                            headers: { 'Content-Type': undefined }

            }).success(function(data, status) {

                projects= data;
                return projects

            }).error(function(arg) {
            alert("error ");
        });
        }
    }
})

和我的控制员:

.controller('RootsCtrl', function($scope, Projects, $http) {

    $scope.projects= Projects.getProjects();


})

这是我的观点:

<ion-view view-title="Projects">
  <ion-content>
    <ion-list>
      <ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="project in projects" type="item-text-wrap" >
        <h2>{{project.try}}</h2>          
      </ion-item>
    </ion-list>
  </ion-content>
</ion-view>

Web服务器现在只返回一些虚假数据。

我无法理解为什么在我看来,project.try的值不会显示,但是该行存在。 所以,如果我有两个值,在我的html中我可以看到两行,但没有他们的&#34;名称&#34;。 感谢

1 个答案:

答案 0 :(得分:1)

工厂是单身人士并返回包含服务成员的对象。

.factory('Project', function($http, $log) {
  return {
    getProjects: getProjects
  };

  function getProject(){
    var config = {
      method: 'POST', 
      url: 'http://localhost:8101/getProjects', 
      headers: { 'Content-Type': undefined }
    }
    return $http(config).then(success).catch(failure);
  }

  function success(resp){
    return resp.data;
  }

  function failure(error){
    return error;
  }
});

$ http返回一个承诺。

//Controller

.controller('RootsController', function(Project){
  var vm = this;

  fetchProject();

  function fetchProject(){
    Project.getProject().then(success, failure);
  }

  function success(data){
    vm.projects = data;
  }

  function failure(err){
    // Error Handling
  }
});

在您看来:

<ion-item ng-repeat = "project in vm.projects">
  {{project}}
</ion-item>

同样在你的州:

controller: 'RootsController as vm' because Ionic has issues with controllerAs syntax.

您还没有发布任何数据吗?并且您只能查看行而不是名称,因为project对象存在但可能不包含名为try的键