我在Scala上试验Play 2.0框架.我试图弄清楚如何发送自定义HTTP标头 - 在这种情况下,"内容 - 处置:附件;文件名= foo.bar".我似乎无法找到关于如何这样做的文档(关于Play 2.0的文档在这一点上整体上非常稀疏).
任何提示?
我有一个SBT项目,特别是一个Play Framework 2.1项目,它在配置中指定了许多子项目.编译时依赖关系似乎工作正常,但"清理"似乎只是清理当前选定的项目,不包括其依赖项.有没有办法清理所选项目及其相关子项目?
我目前正在使用此函数在Javascript中生成UUID(在JavaScript中创建GUID/UUID?):
lucid.uuid = function() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
}
Run Code Online (Sandbox Code Playgroud)
我知道所有随机性只来自Javascript的Math.random()函数,我不在乎它是否符合UUID的RFC.我想要的是在Javascript字符串中将尽可能多的随机性包装到尽可能少的字节中.上述函数给出了大约128位的随机性.一个字符串的小(在HTTP POST中通过线路发送的UTF8字节中测量)可以在Javascript中容纳128位吗?我将如何生成这样的字符串?
编辑:此字符串在发送到服务器时将成为JSON对象的一部分,因此需要在字符串中转义的字符不是很有用.
我是Scala和SBT的新手,我正在试图弄清楚如何在我的Play 2.0项目中添加lift-json作为构建依赖项.lift-json文档说:
Add dependency to your project description:
val lift_json = "net.liftweb" %% "lift-json" % "XXX"
Run Code Online (Sandbox Code Playgroud)
我甚至不确定"项目描述"实际存储在哪里,但我找到了一个具有以下内容的Build.scala:
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
val appName = "test"
val appVersion = "1.0"
val appDependencies = Seq(
// Add your project dependencies here,
"net.liftweb" %% "lift-json" % "2.9.1"
)
val main = PlayProject(appName, appVersion, appDependencies).settings(defaultScalaSettings:_*).settings(
// Add your own project settings here
)
}
Run Code Online (Sandbox Code Playgroud)
你可以看到我为net.liftweb添加的行.不幸的是,这似乎是错误的地方,或错误的内容,因为我得到以下构建错误:
[info] Updating {file:/D:/play/test/}test...
[warn] module not found: net.liftweb#lift-json_2.9.1;2.9.1
[warn] ==== local: tried …Run Code Online (Sandbox Code Playgroud) ImageMagick的"转换"命令行工具允许您在执行操作时指定内存使用限制.我想找一个提供相同选项的Java图像大小调整库.我的应用程序有时会获得非常大的JPEG,并需要将它们下采样到合理的大小.例如,11600 x 5152图像将消耗大约227MB的内存,只需将其解压缩; 调整大小的过程比使用更多.
在Java中,有没有办法将非常大的图像调整到合理的大小而不在内存中解压缩整个图像?
我有一个IndexedDB数据存储,其中包含几百个对象.我想根据该商店的一个索引中的订单从中获取40-59项.有没有办法在开始使用数据之前简单地调用cursor.continue()39次?就处理时间而言,这似乎相当浪费.
我正在Scala中编写一个Play 2.0项目,我需要在SBT开始决定编译什么之前运行一个命令行工具(该命令将创建/替换项目中的.scala文件,其中一个是从某些数据生成的).我是SBT的一个完整的新手,而且谷歌的一些快速时间并没有带来任何有希望的东西.我该怎么做?
我的 Google Drive 应用在交换访问令牌代码时请求以下范围:
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/drive.install
Run Code Online (Sandbox Code Playgroud)
特别是,这是在交换期间最终从 Google 请求的 URL 的查询字符串:
code=XXXXXXXXXX&grant_type=authorization_code&redirect_uri=XXXXXXXXXXX& scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file+ https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email +https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile +https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.install &client_id=XXXXXX.apps.googleusercontent.com&client_secret=XXXXXX
响应是 400 错误,错误消息为“invalid_scope”。我究竟做错了什么?
[编辑] 附加信息:
该错误仅在用户从 Google Drive 单击以创建新文档时发生。如果我从自己的应用程序启动身份验证/授权流程,则可以很好地接受范围列表。如果用户点击实际的 Drive 应用程序来创建一个新文档,我会得到 invalid_scopes。
无效范围是 drive.install。如果我在用户出现以创建新文档时从请求的范围列表中删除它,事情就会重新开始工作。这有什么意义吗?如果用户已经通过我们请求该范围安装了 Drive 应用程序,为什么当用户从 Drive 应用程序出现时请求相同的范围会导致任何类型的问题?
我无法弄清楚如何为组件提供对其视图的引用,以便在显示表单时执行诸如关注输入元素之类的操作.我不能出现注入Element或ng.core.ViewRef或ng.core.View到构造.如何访问视图?
在Angular 1中,我会用$ link做到这一点.
考虑一个 Angular 2 组件,它的@Input意思是一个布尔值,它的存在表示true,不存在表示false。现在,我可能会使用自定义的 getter/setter 来管理它,或者通过一个函数来告诉我该属性是否存在:
@Component({
selector:'foo',
template:`<div [class.error]="hasError()">Hello world</div>`
})
class Foo {
@Input() error:string;
public hasError() {
return error === '' || !!error;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以在另一个组件中使用它,如下所示:
<foo></foo> <!-- no error class -->
<foo error></foo> <!-- has error class -->
Run Code Online (Sandbox Code Playgroud)
我真正想做的是这个,但有相同的行为:
@Component({
selector:'foo',
template:`<div [class.error]="error">Hello world</div>`
})
class Foo {
@Input() error:boolean;
}
Run Code Online (Sandbox Code Playgroud)
在我的第一个示例中,是否有一种通用模式可以在没有样板的情况下创建这种行为?