Angularjs - 查询parse.com $ stateParams

时间:2016-01-19 02:10:02

标签: javascript angularjs parse-platform angular-promise

我正在寻找Angularjs中使用$ stateParams的查询支持。查询返回undefined。

我在新闻Feed中有一系列照片。点击照片会带您进入该照片的新页面。我在下面尝试首先在网络谷歌开发工具标签中吐出照片ID。

环境:angularjs,javascript解析api 使用promises / factory / controller / view

路线

.state(‘gallery.item', {
      url: '/item/:galleryid',
      views: {
        menuContent: {
          controller: 'ItemController as vm',
          templateUrl: path + ‘/galleryitem/item.html'
        }
      }
    })

工厂 - 解析查询

function getFirst(Class, term1, term2){

        var defer = $q.defer();
        var ParseString = Parse.Object.extend(Class);
        var query = new Parse.Query(ParseString);
         query.equalTo(term1, term2);
         if(Class==='Gallery') {
            query.equalTo('approve', true);
            query.ascending('createdAt');
         }
        query
        .first()
        .then(function(resp){
          console.log('getFirst', resp);
          if (resp === undefined) {
            defer.reject(resp);
          } else {
            defer.resolve(resp);
          }

        });

    return defer.promise;
  }

return {
getFirst: getFirst
}

ItemController

function ItemController($scope, $state, $rootScope, $stateParams, Factory) {
var vm = this;

getItemDetails();

function getItemDetails() {

vm.Gallery = [];

Factory
.getFirst('Gallery', 'objectId', $stateParams.id)
.then(function(resp) {

vm.GalleryData = response;

 console.log(resp);

 vm.Gallery.push({
            id: resp.id,
        });

      });

非常感谢任何帮助。

由于

卡梅伦

1 个答案:

答案 0 :(得分:0)

在您的路由配置中,您使用url: '/item/:galleryid',,但在控制器中,您正在寻找与路由配置不匹配的$stateParams.id

更改为$stateParams.galleryid