【问题标题】:creating a ydn-db service for angularjs为 angularjs 创建一个 ydn-db 服务
【发布时间】:2014-08-28 14:11:33
【问题描述】:

我正在使用 Meanjs 和 ydn-db 来支持 indexeddb 的项目。

所以我正在尝试以角度提供服务,但我无法找到正确包含 js 文件的方法。我尝试通过以下方法安装库:

  1. 凉亭安装 ydn-db
  2. 凉亭安装ydndb

    第一种情况,我找不到像ydn.db-isw-core-qry-dev.js 这样的合适的.js 文件。现在第二个将安装我可以工作的两个缩小版本,但我总是得到 ydn not found 错误

现在通过查看开发者页面http://dev.yathit.com/ydn-db/getting-started.html,我可以看到他有一种方法可以在 AMD 加载器部分中生成 require,我根本不知道如何在服务工厂中使用它。
这是我在工厂内尝试做的事情,顺便说一句,我认为这不是最佳实践......
这些是我尝试加载时遇到的错误...
我怎样才能使用这个库,同时仍然遵循 Angular 的最佳实践,或者至少只是让它正常工作?

ldb undefined 
Object {db: Object, debug: Object}    

Uncaught ydn.error.ArgumentException: Unknown attribute "keypath"

angular.module(ApplicationConfiguration.applicationModuleName).factory('Localdb',['$resource','$q',
    function($resource,$q) {
        var deferred=$q.defer();
        require.config({
            baseUrl: '/content',
            paths: {
                ydn: 'scripts/ydn.db-isw-core-qry-dev'
            }
        });
            require(['scripts/ydn.db-isw-core-qry-dev'], function(ldb){
                console.log ('ldb',ldb);//this is undefined   
                var schema ={
                    stores:[
                        {
                            name:'process',
                            keypath:'_id',
                            indexes:[{
                                    name:'processId',
                                    keypath:'processId',
                                    unique:false
                                },{
                                    name:'processMeta',
                                    keypath:'processMeta',
                                    unique:false
                                }
                            ]
                        }
                    ]
                };
                console.log(ydn);//this gets back ok but then the keypath error???
                deferred.resolve(new ydn.db.Storage('pdc',schema));
            });
            return deferred.promise;
    }
]);

【问题讨论】:

    标签: angularjs requirejs ydn-db meanjs


    【解决方案1】:

    抱歉,麻烦您了。 ydn-db repo 没有编译过的 js 文件,正如 bower 所要求的(我认为)。所以它不起作用。只需 download js 文件之一并添加到您的 html 中。

    还可以查看ydn-db with angular example app

    【讨论】:

    • 有什么方法可以让 ydn 与 requirejs 一起工作?当我尝试加载回调参数时,我在回调参数中也有空引用
    • 我已经尝试下载该文件,但它给了我一个找不到 KeyPath 错误...所以现在我使用 ydndb bower 方法,但仍然得到“ydn is not defined”,另外我必须下载我认为与 ydndb bower 存储库不匹配的地图。有什么想法可以解决这个问题吗??
    • 我将更新凉亭支持。看起来我们已经到了凉亭的年龄,不知道如何在本地使用 javascript 文件。
    • @KyawTun 感谢您将凉亭支持放在您的待办事项中(这将是有用且更易于实施),无论如何我的观点与它没有任何关系,我只是想被盯着使用您的库并使用 require.js 以与您提到 dev.yathit.com/ydn-db/getting-started.html 相同的方式加载它,奇怪的是我在回调参数中得到一个空引用,我将发布一个关于这个问题的问题。
    • ydn.db 现在应该在凉亭中可用。 bower install ydn.db.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    相关资源
    最近更新 更多