从定制数据库表创建角度工厂

时间:2016-08-18 作者:Sjors Hijgenaar

我正在尝试创建一个应用程序页面,允许用户观看和评论通过YT API导入的YouTube视频。为了做到这一点,我在子主题中创建了一个页面模板,该模板具有视频列表、YT播放器实例和自定义播放器控件。

我想要实现的是,每当用户从列表中选择视频时,视频应该加载,并通过$resource 调用,用视频附带的注释填充工厂。

我已经创建了一个自定义表,其中包含一列video\\u id。对于工厂,我所能想到的最大值是:

angular.module("app")
    .factory("commentRepository",
        function($resource) {
            return $resource("/wp-content/themes/zerif-lite-child/inc/get_comments.php");
        });
在我的控制器中,我为工厂添加一个依赖项,并将其分配给$scope 瓦莱布尔。

获取\\u注释。php:

<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/wp-load.php");
function get_comments_by_id()
{
    if (!is_user_logged_in()) {
        echo json_encode("Not Authorised");
    } else {
        global $wpdb;
        $result = $wpdb->get_results("SELECT * FROM analyser_posts", OBJECT);
        echo json_encode($result);
    }
}
get_comments_by_id();
但是,这将返回以下内容error. 如果我直接浏览到php文件,我会看到一个漂亮的JSON数据数组。如何将数据正确地输入工厂?

1 个回复
SO网友:Sjors Hijgenaar

我想我应该更仔细地阅读错误页,因为它包含了简单的英语答案。在factory中,请求应简单地将请求与响应签名(在我的情况下是一个数组)匹配,从而成为:

angular.module("app").controller("MainController", ["$scope", "commentRepository", function ($scope, commentRepository) {
    commentRepository.query(function(data) {
        $scope.comments = data;
    });
}]);
而不是使用get方法。

相关推荐

以JSON格式将插件设置保存在%1字段中

这是一个关于性能的问题。我使用Wordpress设置API来注册字段,对于一个包含30多个字段的插件,可能会导致大量代码行,此外,有时插件必须使用get_option() 为了知道它是否可以在特定的管理页面上显示特定的数据,这会导致更多的数据库调用。相反,将所有选项以JSON格式保存在选项表的1个字段中不是更好吗?一旦管理员页面加载,您只需使用get_option(\'prefix_my_settings\') 然后哪个将检索所有插件设置的json?然后,所有插件设置都存储在一个位置,每个页面加载只使用一