我使用2.9.0版本的Phonegap,我希望当键盘出现时,我的WebView会像在Android phonegap应用程序中那样缩小.我将页脚和页眉元素固定在固定位置,当键盘打开时会导致故障(页脚和页眉松开其固定位置状态).
根据phonegap文档,我认为KeyboardShrinksView设置可以解决这个问题:http://docs.phonegap.com/en/2.9.0rc1/guide_project-settings_ios_index.md.html#Project%20Settings%20for%20iOS
但经过大量的尝试,我无法使其工作,WebView不会缩小.
我想也许它可能来自我的config.xml上设置的其他偏好之间的冲突:
config.xml中
<gap:platform name="ios" />
<gap:platform name="android" />
<preference name="fullscreen" value="false" />
<preference name="webviewbounce" value="false" />
<preference name="orientation" value="portrait" />
<preference name="KeyboardShrinksView" value="true" />
Run Code Online (Sandbox Code Playgroud)
或者它可能来自元标记定义,特别是视口:
的index.html
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
Run Code Online (Sandbox Code Playgroud)
你知道它为什么不起作用吗?或者你有解决方法吗?
编辑:我看到它在KeyboardShrinksView = true时改变了一些东西,但是当键盘打开时,它隐藏了我的内容的底部(包括我的页脚和字段),而不是调整整个内容的大小.我希望它将我的页脚放在键盘顶部,对不对?
谢谢您的帮助
我正在使用MongoDB和Mongoose与Express来存储我通过Twitter API检索的推文.
我想避免保存重复的推文.我正在做这样的事情:
TweetsModel.find({tweet_id: tweet.tweet_id}, function (err, tweets) {
if(tweets.length > 0){
cb('Tweet already exists',null);
} else{
tweet.save(function(err){
cb(err,user);
});
}
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:出于性能原因,有没有办法使用Mongoose来避免做两个请求?一个找到一个保存?
知道我不想更新推文,如果它已经存在.
谢谢
我尝试使用AngularJS构建模块化应用程序.我的第一个想法是通过functionnality将每个模块分组为这种文件夹结构:
/core
controllers.js
directives.js
app.js
/modules
/users
controllers.js
directives.js
/invoices
controllers.js
directives.js
/messages
controllers.js
directives.js
...
Run Code Online (Sandbox Code Playgroud)
请注意,"core"文件夹包含将始终位于应用程序中的基本功能.其他模块可以单独添加或删除.
由于我的应用程序很大,我也想使用延迟加载.我实现了这个解决方案:http://ify.io/lazy-loading-in-angularjs/在我看来实际上是最简单的方法.问题是它只对控制器,服务,指令进行延迟加载......但不适用于AngularJS模块.
我知道还有另一种允许延迟加载Angular模块的方法(http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/)但是我认为这太过于hacky,因为它使用Angular的核心方法.
我的问题是:在我的情况下,为我的每个模块使用不同的AngularJS模块是否有意义,如下所示:
angular.module('core', ['ngRoute', 'users', 'invoices', 'messages'])
angular.module('users')
angular.module('invoices')
angular.module('messages')
Run Code Online (Sandbox Code Playgroud)
这种方法的优点是什么?AngularJS模块目前是否有用 - 仅适用于Angular的第三方模块?
我问这个,因为AngularJS 2.0将支持本机延迟加载.来自Google的MiškoHevery说"你应该按视图分组,因为在不久的将来,视图将被延迟加载",并且我们应该为每个应用程序使用一个模块,请参阅此处:https://www.youtube.com/watch? v =&ZhfUv0spHCY T = 34m19s
对于大型应用程序来说,只为我的应用程序使用一个模块是正确的,如下所示:
angular.module('core', ['ngRoute']);
Run Code Online (Sandbox Code Playgroud)
然后根据路由或视图延迟加载我的控制器,服务和指令?
我的用例:
我有一个使用ui-router的多步骤表单,如下面的plunkr.我使用ng-form来验证AngularJS提供的信息,比如$ valid,$ dirty等.
每次单击"下一部分"按钮后,我将表单数据发送到服务器以便检索它,以防用户在完成之前退出表单.
如果用户提交两次第一步,我只发送编辑过的数据(如果$ dirty值为true).所有这些都不在plunkr中,我选择向您展示一个简单的表单,但我的表单可以包含一百个字段(收音机,复选框,输入,选择等).
重现问题的步骤(plunkr):
myMultiStepForm.interests.xbox.$dirty = truemyMultiStepForm.interests.xbox.$dirty = false为什么$ dirty值变为false?我想这是因为<ng-form>再次显示并重置所有验证数据.
有办法避免这种情况吗?或者除了<ng-form>处理字段子集的验证之外的其他东西?
这是plunkr:http://plnkr.co/edit/WclqVgiBvUXlsGdSCcj0?p = preview
我已经构建了一个与node.js一起运行的应用程序,它允许通过REST API检索一些数据.
我想把它放在个人计算机(Windows)上,但我不知道如何安装服务器以及我需要在线提供我的应用程序.
有人可以解释一下这样做的步骤吗?我知道有些在线服务存在像Heroku,但我想自己做.
谢谢
我正在使用OpenJPA和QueryDSL,我试图通过使用QueryDSL的bean投影功能来避免操作Tuple对象.我有例如这两个实体,具有@ManyToOne关系.
@Entity
public class Folder {
private Long id;
private String name;
private String path;
@ManyToOne
@JoinColumn(name = "FK_FILE_ID")
private File file;
}
@Entity
public class File {
private Long id;
private String fileName;
}
Run Code Online (Sandbox Code Playgroud)
当我执行此查询时:
List<Folder> listFolders = query.from(folder)
.list(Projections.bean(Folder.class, folder.name, folder.file.fileName));
Run Code Online (Sandbox Code Playgroud)
我有一个错误,说Folder对象不包含fileName属性.
我理解QueryDSL正在做什么,因为它是一个简单的"平面"投影,但我想知道是否可以用查询找到的值填充我的folder.file对象的fileName属性.
注意:我知道我可以为我的Folder类定义构造函数并使用此方法:
query.list(ConstructorExpression.create(Folder.class, folder.name,
folder.file.fileName));
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话我想避免这种情况,因为它迫使我在我的投影中为我想要的字段的N组合定义N构造函数.
我正在寻找一种单行技巧来执行以下操作:
我有这个字符串"Car;;;;Plane"并想要这个结果"Car;NULL;NULL;NULL;Plane"。
我正在做,myString.replaceAll(";;", ";NULL;");但结果是"Car;NULL;;NULL;Plane",我想它只找到了两次出现的模式,我希望它被视为出现了三次。
最好/最快的方法是什么?