Javascript Angularjs-query parse.com$stateParams

Javascript Angularjs-query parse.com$stateParams,javascript,angularjs,parse-platform,angular-promise,Javascript,Angularjs,Parse Platform,Angular Promise,我正在寻找对Angularjs中使用$stateParams的查询的支持。查询返回未定义的 我在新闻提要中有一组照片。点击一张照片会带你进入该照片的新页面。我在下面尝试先在网络谷歌开发工具标签中吐出照片id 环境:angularjs、javascript解析api 使用promises/factory/controller/view 路线 工厂解析查询 function getFirst(Class, term1, term2){ var defer = $q.defer();

我正在寻找对Angularjs中使用$stateParams的查询的支持。查询返回未定义的

我在新闻提要中有一组照片。点击一张照片会带你进入该照片的新页面。我在下面尝试先在网络谷歌开发工具标签中吐出照片id

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

路线

工厂解析查询

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
}
项目控制器

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,
        });

      });
任何帮助都将不胜感激

谢谢


Cameron

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


更改为
$stateParams.galleryid

非常感谢。查询正在进行中。不过,在我看来,我还是无法表现出来。?我可以在我的item.html中执行{{gallery.id}}吗?因为解析不在angular上下文中,所以您需要运行
$scope.$apply()
,以便在外部更改作用域时查看angular run digest。它还在变得烦躁不安$运行时,消化已在进行中的错误。根据一些研究,被告知尝试$scope.$applyAsync();,这会使错误消失,但数据仍然无法绑定到视图。我会继续研究的。干杯。也可以尝试
$timeout()
。。。必须在控制器中注入
$timeout
服务才能使用i-Charlie,您是否有机会看看我的另一个链接,这在本质上是相似的?明白你很忙,有自己的生活。如果你不问,你就不会明白。
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,
        });

      });