使用Angular JS的JSON不起作用(Ionic& Cordova)

时间:2014-11-16 03:34:16

标签: javascript json angularjs cordova ionic-framework

我正在尝试使用他们的数据下载JSON,但由于某种原因无法运行,整个应用程序都会中断。而且我想在Pull刷新JSON刷新的所有信息时。

这是Services.js:

angular.module('starter.services', [])

.factory('NotasService', function($resource,$http) {
return {

  all: function() {
    var items_nota;
      $http.get('http://betamediagroup.net/apps/canalDiez/estructura.json ')
          .success(function(data) {
           items_nota = data.datos;
          });
       return items_nota;
       },
     get: function(notaId) {
    // Simple index lookup
       return items_nota[notaId];
     }
      }
    });

这是Controller.js

    angular.module('starter.controllers', [])

.controller('ActulidadCtrl', function($scope, NotasService, $timeout) {

    $scope.items_nota = NotasService.all();
    $scope.isActualidad = function(items_nota) {
        return items_nota.category === "ahora";
    };

    //Pull tu refresh
        $scope.doRefresh = function() {

        console.log('Actualizando!');
        $timeout( function() {

        $scope.items_nota.push({
          id: 3,
          titulo: 'Balcarce: Marangoni en los 70 años del Banco Provincia.',
          fecha: '03 nov 09.30',
          foto: 'actualidad_marangoni'
        });
        $scope.items_nota.push({
          id: 4,
          titulo: 'Temporal: el Gobierno Provincial asiste a los daminficados.',
          fecha: '03 nov 09.00',
          foto: 'actualidad_temporal'
        });
        //Stop the ion-refresher from spinning
        $scope.$broadcast('scroll.refreshComplete');

        });

    };
})

这是模板视图:

<ion-view>
    <ion-nav-buttons side="left">
        <button menu-toggle="left" class="button button-icon icon ion-navicon"></button>>
    </ion-nav-buttons>

    <ion-content class="has-header">
        <ion-refresher on-refresh="doRefresh()" pulling-text="Tire para actualizar..." refreshing-text="Actualizando!" refreshing-icon="ion-loading-c">
        </ion-refresher>
        <ion-list>    
            <ion-item ng-repeat="item in items_nota" href="#/app/nota/{{item.id}}">
                <img src="img/{{item.foto}}">
                <h2>{{item.titulo}}</h2>
                <p >{{item.fecha}}</p>
            </ion-item>
        </ion-list>
    </ion-content>
</ion-view>

UPDATE:解决了JSON结构中的问题

2 个答案:

答案 0 :(得分:1)

试试这个

.factory('NotasService', function($resource,$http) {
    var items_nota;

    $http.get('http://betamediagroup.net/apps/canalDiez/estructura.json ')
        .success(function(respuesta) {
      items_nota = respuesta.data;
    });
  };

  return {
    all: function() {
      return items_nota;
    },
    get: function(notaId) {
      // Simple index lookup
      return items_nota[notaId];
    }
  }
});

如果您未在服务中传递$http,应用程序会中断的原因

答案 1 :(得分:1)

1-你有一个小错字

2-你必须将$ http传递给你的工厂

3-您的items_nota应该等于数据dotas数组而不是请求数据

.factory('NotasService', function($resource,$http) {
     return {

all: function() {
  var items_nota;
    $http.get('http://betamediagroup.net/apps/canalDiez/estructura.json ')
        .success(function(data) {
         items_nota = data.datos;
        });
     return items_nota;
     },
   get: function(notaId) {
  // Simple index lookup
     return items_nota[notaId];
   }
    }
  });