Pregunta

Creo que Angular está cargando la página antes de que reciba toda la información de JSONP.Si actualizo la página un par de veces, obtengo la información para mostrar;Sin embargo, no es constante.Mi código es casi el mismo que el código que estoy usando en Mis proyectos que no tiene el mismo problema.

html:

<div class="container">
    <div class="row push-top" ng-show="user">
      <div class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-10 col-md-offset-1">
        <div class="well well-sm">
          <div class="row">
            <div class="col-sm-3 col-md-2">
              <img ng-src="[[ user.images.138 ]]" alt="" class="img-rounded img-responsive" />
            </div>
            <div class="col-sm-7 col-md-8">
              <h4 ng-bind="user.display_name"></h4>
              <h5 ng-bind="user.occupation"></h5>

              <i class="fa fa-map-marker"></i>
              <cite title="[[ user.city ]], [[ user.country ]]">[[ user.city ]], [[ user.country ]]</cite>
              <br>
              <strong ng-bind="user.stats.followers"></strong> Followers, <strong ng-bind="user.stats.following"></strong> Following

              <hr>

              <p style="margin-top:10px;" ng-bind="user.sections['About Me']"></p>

            </div>
          </div>
        </div>
      </div>
    </div>
</div>

javastipt:

'use strict';

angular.module('angularApp')
  .controller('AboutCtrl', function ($scope, $window, Behance) {
    $scope.loading = true;
    Behance.getUser('zachjanice').then(function (user) {
      $scope.user = user;
      $scope.loading = false;
    }, function (error) {
      console.log(error);
      $scope.loading = false;
      $scope.user = null;
    });

    $scope.gotoUrl = function (url) {
      $window.location.href = url;
    };
  });

Puede ver la página en la pregunta en: http://zachjanice.com/index.html#/ sobre .Gracias de antemano.

Según lo solicitado aquí es el servicio de noticia:

'use strict';

angular.module('angularApp')
  .factory('Behance', function ($http, $q, localStorageService, BEHANCE_CLIENT_ID) {

    // Should be called to refresh data (for testing purposes)
    // localStorageService.clearAll();

    // Public API
    return {

      // Get a list of projects
      getProjects: function (config) {
        var pageNum = 1;
        if (angular.isObject(config) && angular.isDefined(config.page)) {
          pageNum = config.page;
        }

        var _projects = $q.defer(),
            _storedProjects = localStorageService.get('Projects_Page_');

        if (_storedProjects !== null) {
          _projects.resolve(_storedProjects);
        } else {
          $http.jsonp('https://www.behance.net/v2/users/zachjanice/projects', {
            params: {
              'client_id': BEHANCE_CLIENT_ID,
              'callback': 'JSON_CALLBACK',
              'page': pageNum
            }
          })
          .then(function (response) {
            if (response.data.http_code === 200 && response.data.projects.length > 0) {
              // console.log('getting page', _page);
              _projects.resolve(response.data.projects);
              localStorageService.add('Projects_Page_' + pageNum, response.data.projects);
            }
          });
        }

        return _projects.promise;
      },

      // Get project with id
      getProject: function (id) {

        var _project = $q.defer();

        $http.jsonp('https://www.behance.net/v2/projects/' + id, {
          params: {
            'client_id': BEHANCE_CLIENT_ID,
            'callback': 'JSON_CALLBACK'
          },
          cache: true
        }).success(function (data){
          _project.resolve(data.project);
        });

        return _project.promise;
      },

      // Get project with id
      getUser: function (username) {

        var _user = $q.defer();

        $http.jsonp('https://www.behance.net/v2/users/' + username, {
          params: {
            'client_id': BEHANCE_CLIENT_ID,
            'callback': 'JSON_CALLBACK'
          },
          cache: true
        }).success(function (data){
          _user.resolve(data.user);
        });

        return _user.promise;
      }
    };
  });

¿Fue útil?

Solución

Anthony Chu no proporcionó apoyo, así que encontré la respuesta a mí mismo.El problema no fue el servicio de Behance, sino el controlador de proyectos como lo había dicho originalmente.

Cambié $ scope.Ladering bajo la llamada para el servicio de False a True.Funciona cada vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top