我正在尝试测试正在使用的服务 $http
var APIClient = function($http) {
this.send = function(data) {
$http({
method: data.method,
url: data.url,
headers: data.headers,
data: data.data
}).success(function(response, status) {
data.success(response, status);
}).error(function(response, status) {
data.error(response, status);
});
}
}
angular.module('api.client', []).factory('APIClient', ['$http'
function($http) {
var client = new APIClient($http);
return {
send: function(data) {
return client.send(data);
},
}
}
]);
Run Code Online (Sandbox Code Playgroud)
而且测试
describe('send', function() {
var apiClient, $httpBackend;
beforeEach(module('compare'));
beforeEach(inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
apiClient = $injector.get('APIClient');
}));
it('Should check if send() exists', function() {
expect(apiClient.send).toBeDefined();
}); …Run Code Online (Sandbox Code Playgroud) 我在http://www.devcurry.com/2010/05/sorting-json-array.html上找到了如何对JSON数组进行排序的方法
现在我想以通用的方式对它进行排序; 这样我的排序函数就知道要排序的属性.
例如,如果我的数组是
[
{
"name": "John",
"age": "16"
},
{
"name": "Charles",
"age": "26"
}
]
Run Code Online (Sandbox Code Playgroud)
我想避免写一些不同的案例,以便知道我是否应按姓名或年龄排序.我只想传递参数'name'或'age',我的排序功能应该知道该怎么做.
谢谢.
我正在开发一个带有离子框架和Cordova插件的混合应用程序.他们问我两个操作系统(iOS和Android)上的启动画面都有一个小动画.我想象一个GIF,但如果你可以加载GIF作为启动画面.或者如果有插件的话.
存储多个用户数据的最佳方法是每个用户每个数据库.我正在使用同样的方法.
我在服务器上有couchdb,移动应用程序有pouchdb.我通过在pouchdb和couchdb中为用户创建单独的数据库来维护每个用户数据.那.这意味着我在couchdb中有多个数据库,在pouchdb中有一个数据库.
通常在sqlbase数据库中,用户数据存储在不同的不同表中.
所以在nosql pouchdb中我正在为每个表创建文档.
我面临的实际问题是:
我在每个数据库中都有一个文档来存储用户的事务.
客户端事务在他/她脱机时以及当应用程序将事务同步到couchdb用户数据库到事务文档时存储在pouchdb中.
数据存储在交易文件中如下
{
"_id":"transaction ",
"_rev":"1-3e5e140d50bf6a4d873f0c0f3e3deb8c",
"data":[
{
"transaction_id":"tran_1",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
},
{
"transaction_id":"tran_2",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
}]
}
Run Code Online (Sandbox Code Playgroud)
所有这些事务都在服务器端执行,结果在这些文档中更新.当执行任何新事务时,我将其存储在数据属性的事务文档中.
现在我在pouch和couchdb中有1个事务,两者都意味着两个都是同步的.
现在,当移动应用程序处于脱机状态时,它会执行存储在pouchdb事务文档中的脱机事务.
在服务器端,1个事务更新为成功.
现在当应用程序进入联机和同步执行时,我正在丢失我的服务器端更改,最后事务文档中的数据是客户端pouchdb.
在这里我丢失了服务器端数据.那么什么是好方法或如何解决它.

我在服务器端的客户端(离子移动应用程序)couchdb使用pouchdb.
我需要在pouchdb成功创建并与couchdb同步后执行操作.
所以我怎么能等到pouchdb完成初始活动.然后才开始我的客户端执行.
目前pouch正在以异步方式工作所以在pouch初始化我的应用程序之前的某个时候开始执行并且我收到pouchdb的错误.
目标:
当用户在文本框中键入字符时,会出现一个按钮.当用户使用退格键清除文本框但按住该键几秒钟时,立即隐藏按钮.
问题:
如果用户键入单个字符,并使用退格键将其删除 - 通过按住退格键几秒钟 - 隐藏按钮之前会有一段延迟.仅当用户只键入一个字符然后按住退格键而不放手时才会发生这种情况.如果用户输入多个字符,然后按住退格键直到文本框为空,则隐藏按钮没有延迟.
<input type="text" id="tbox"></text>
<button type="button" id="btn" style="display:none;">push me</button>
$('#tbox').on('keydown keypress keyup',function(){
if($('#tbox').val() !== '') {
$('#btn').css({'display':'block'});
} else {
$('#btn').css({'display':'none'});
}
});
Run Code Online (Sandbox Code Playgroud)
的jsfiddle:
现在我正在使用Angular Material Design.一切都按预期运作良好.现在我想使用自动完成(Angular Material Design)强制选择,以便用户必须始终选择一些东西.没有进入的可能性,用户只能选择.
有谁知道如何做到这一点??
角度材料设计链接:
https://material.angularjs.org/latest/#/demo/material.components.autocomplete
autoCompleteController.js
pocApp.controller('autoCompleteCtrl', function ($scope, $log, $mdDialog) {
$scope.selectedItem;
$scope.searchText;
$scope.states = loadAll();
$scope.querySearch = querySearch;
$scope.srchText;
$scope.onItemChange = function (item) {
$log.info(angular.toJson(item));
};
$scope.saveAutoComplete = function () {
$log.info($scope.selectedItem);
};
function querySearch(query) {
var searchRes = [];
angular.forEach($scope.states, function (state) {
if (query === '') {
searchRes.push(state);
}
else if (state.value.indexOf(query.toLowerCase()) === 0) {
searchRes.push(state);
}
});
return searchRes;
}
function loadAll() {
var allStates = 'Alabama, Alaska, Arizona, Arkansas, California, Colorado, …Run Code Online (Sandbox Code Playgroud) 我目前正在使用PouchDB(客户端)和CouchDB(服务器端)开发混合移动应用程序来进行数据存储.在我决定对存储在PouchDB中的数据实施安全性之前,一切都运行得非常顺利.为此我使用transform-pouch,我在传入方法中加密数据并在传出方法中解密数据.
以下是使用过的代码段.
var transformFunctions = {
incoming: function(doc) {
Object.keys(doc).forEach(function(field) {
if (field !== '_id' && field !== '_rev' && field !== '_revisions') {
if (service.isJsonObject(doc[field])) {
doc[field] = CipherService.encrypt(JSON.stringify(doc[field]), "password");
} else {
doc[field] = CipherService.encrypt(doc[field], "password");
}
}
});
return doc;
},
outgoing: function(doc) {
Object.keys(doc).forEach(function(field) {
if (field !== '_id' && field !== '_rev' && field !== '_revisions') {
var decData = CipherService.decrypt(doc[field], "password");
if (service.isJsonString(decData)) {
doc[field] = JSON.parse(decData);
} else {
doc[field] = …Run Code Online (Sandbox Code Playgroud)