什么是为AngularJS驱动的学习页面存储数据的正确方法

时间:2016-02-11 15:04:48

标签: mysql angularjs xml

我正在建立一个学习网页。实际上做页面是主要目标,如果它运作良好,它只会是奖金,因为我很可能是唯一一个使用它的人。

据说我正在使用包含大量信息的Angular对象,例如:

学期 - 子类别 - 问题 - 作为对象的答案列表" true" /" false"多种选择的属性和答案本身等。

由于我将使用angular进行整个排序/过滤,我想知道我是否真的需要SQL,或者XML文件是否优越。

SQL保存是我的主要问题。 PHP似乎将数组编入一个字符串,其值为#34; array"。如果我使用json_encode它可以正确保存,但在GET上它会停止工作,因为我必须使用"重建整个数据结构。和'到处都是。

使用XML,它看起来很像仅仅是为了构建而不是构建。我发现了一些过时的教程,甚至没有一个有效的例子。

所以我想我的问题是: 我要么使用SQL,要么使用多个表。将我的对象拆分为多个具有可选值的列,同时还在重载时重建整个事物?

或者我是否使用XML,因为我只会使用数据库来获取整个事情?

这两种方法都经过了我的测试和工作。两者都需要进一步挖掘,阅读和尝试。我没有空余时间去做这两条路线。在这个特定的用例中哪一个更好?

2 个答案:

答案 0 :(得分:2)

这是个人偏好,但我总是尽量避免使用XML。 JSON格式非常精简和简单,并且在Web应用程序中更容易使用。

事实上,我建议先从一些静态JSON文件开始,直到您完成为您的网站提供一些结构。您可以手动生成它们,使用一些生成器工具(如http://www.mockaroo.com/)或使用一些简单的javascript构建它们(JSON.stringify是您的朋友)。然后,您可以使用$http服务轻松地使用此数据:

$http.get('my-data.json')
  .then(function(response) {
    $scope.myData = response.data;
  });

这实际上是我的团队在构建大型企业应用程序时采用的方法。当我们(或客户)对进展感到满意时,我们会模拟所有数据资源并将其替换为真实的数据。

答案 1 :(得分:1)

使用JSON-File就足够了。您可以将所有需要的对象存储在其中并轻松更改。使用以下代码,您可以在JavaScript中加载数据

function loadJSON(path, success, error) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 200) {
                if (success)
                    success(JSONH.parse(xhr.responseText));
            } else {
                if (error)
                    error(xhr);
            }
        }
    };
    xhr.open("GET", path, true);
    xhr.send();
}

使用

loadJSON('data.json',//relative path
    function (data) {//success function
        $scope.questions = question;
        $scope.$apply();
    },
    function (xhr) {//error function
        console.error(xhr);
    }
);