为 angularjs 创建一个 ydn-db 服务
Posted
技术标签:
【中文标题】为 angularjs 创建一个 ydn-db 服务【英文标题】:creating a ydn-db service for angularjs 【发布时间】:2014-08-28 14:11:33 【问题描述】:我正在使用 Meanjs 和 ydn-db 来支持 indexeddb 的项目。
所以我正在尝试以角度提供服务,但我无法找到正确包含 js 文件的方法。我尝试通过以下方法安装库:
-
凉亭安装 ydn-db
凉亭安装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;
]);
【问题讨论】:
【参考方案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
.以上是关于为 angularjs 创建一个 ydn-db 服务的主要内容,如果未能解决你的问题,请参考以下文章
YDN-DB - 删除数据库,然后在页面加载/重新加载时重新创建和加载,但在刷新时不加载