Javascript AngularJS在ng视图中将JSON附加到控制器

Javascript AngularJS在ng视图中将JSON附加到控制器,javascript,angularjs,Javascript,Angularjs,有没有NG专家 我无法让我的工厂(VIEWservices)将JSON添加到新的view casestudy.php 我试图实现的是,当您使用函数(openCase)单击一篇文章时,它会在ng视图中显示casestudy.php(这是可行的),但我无法让它显示该文章的相关内容 我认为这是一个非常简单的修复,只是看了几个小时,并没有任何乐趣 HTML 工厂的getPosts函数是异步的。您需要使用。然后获取其返回值。在控制器中,尝试将代码更改为: app.controller('caseCtrl'

有没有NG专家

我无法让我的工厂(VIEWservices)将JSON添加到新的view casestudy.php

我试图实现的是,当您使用函数(openCase)单击一篇文章时,它会在ng视图中显示casestudy.php(这是可行的),但我无法让它显示该文章的相关内容

我认为这是一个非常简单的修复,只是看了几个小时,并没有任何乐趣

HTML


工厂的getPosts函数是异步的。您需要使用
。然后
获取其返回值。在控制器中,尝试将代码更改为:

app.controller('caseCtrl', function($scope, VIEWservices, $routeParams) {
    var posts = VIEWservices.getPosts();
    posts.then(function(data)
    {
        $scope.post = data[$routeParams.slug];
    });
});

我不确定这是否是你想要的,但它可能会帮助你解决问题。要使用JSON,请尝试以下操作:

将$http注入控制器,然后获取json,如下所示:

$http.get('data/' + $scope.filename + '.json').success(function (data) {
    $scope.retrievedJson = data;
});

这将使用检索到的json文件的内容填充retrievedJson变量,使其可用于范围。

由于您的问题不完整,我会问自己以下问题:

  • console.log($scope.post)在caseCtrl中向控制台写入什么
  • caseCtrl中$routeParams.slug的值是多少
另一方面,为什么你总是得到所有的职位,而你只需要一个?您可以尝试在工厂中添加另一种方法,以仅获取一个帖子,如下所示:

getPost: function(postSlug) {
   return $http.get('wp-content/themes/name/ajax/homepage-casestudies.php?slug=' + postSlug).then(function (result) {
       return result.data;
   })
}

当然,您需要在php文件中添加登录名,以便只获得一个案例。

欢迎使用SO。请尽量多描述一些,让你的问题更加突出。避免多余的信息和评论。请阅读有关改进问题的提示。我很抱歉-我将更新我的问题尝试在
中执行
console.log(data)
。然后执行
函数,看看它是否实际有效。也许需要先解析它?
$http.get('data/' + $scope.filename + '.json').success(function (data) {
    $scope.retrievedJson = data;
});
getPost: function(postSlug) {
   return $http.get('wp-content/themes/name/ajax/homepage-casestudies.php?slug=' + postSlug).then(function (result) {
       return result.data;
   })
}