我的前端有一个TypeAhead/Bloodhound实现,它从Play/Scala服务器获取JSON数据.Typeahead-version是0.11.1.实施如下:
HTML:
<div id="typeahead" class="col-md-8">
<input class="typeahead form-control" type="text" placeholder="Select the user">
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var engine = new Bloodhound({
datumTokenizer: function (datum) {
var fullName = fullName(datum);
return Bloodhound.tokenizers.whitespace(fullName);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: function(obj) { return obj.id; },
remote: {
url: routes.controllers.Users.index("").url,
cache: false,
replace: function (url, query) {
if (!isEmpty(query)) {
url += encodeURIComponent(query);
}
return url;
},
filter: function (data) {
console.log(data);
return $.map(data, function (user) {
return {
id: user.id,
fullName: viewModel.fullName(user)
};
});
}
}
}); …
Run Code Online (Sandbox Code Playgroud) 我想在我的Android项目中有一个NavigationDrawer,它始终部分显示ListView,并且项目也是可点击的,但是当用户拖动抽屉时,会显示完整的ListView.
下面的图像是我想要实现的:
第一个是"普通视图",您可以在其中看到小图标.第二个是当用户滑动导航抽屉以使其打开时.第三个是当回到普通视图中时,用户单击A和C,以便图标改变其颜色.
有什么建议怎么做?
谢谢回答 :)
android android-listview baseadapter navigation-drawer drawerlayout
我想在我的Play-scala项目中使用java.sql.Date和Option [java.sql.Date]作为查询参数,但Play框架没有默认设置。我正在使用的播放版本是2.4.3。我有以下(粗略的)课程。
object CustomBinders extends {
val dateFormat = ISODateTimeFormat.date()
implicit def dateBinder: QueryStringBindable[Date] = new QueryStringBindable[Date] {
def bind(key: String, params: Map[String, Seq[String]]): Option[Either[String, Date]] = {
val dateString: Option[Seq[String]] = params.get(key)
try {
Some(Right(new Date(dateFormat.parseDateTime(dateString.get.head).getMillis)))
} catch {
case e: IllegalArgumentException => Option(Left(dateString.get.head))
}
}
def unbind(key: String, value: Date): String = {
dateFormat.print(value.getTime)
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在Build.scala中,我有
import play.sbt.routes.RoutesKeys
object Build extends Build {
RoutesKeys.routesImport += "binders.CustomBinders.dateBinder"
RoutesKeys.routesImport += "binders.CustomBinders.optionDateBinder"
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用Option [Date]定义查询参数,则会出现错误
No QueryString binder found for …
Run Code Online (Sandbox Code Playgroud) scala query-string querystringparameter playframework playframework-2.4
这应该是一个简单的查询,但我遇到了正确的Rails语法问题.我正在使用Rails 4.1.1和Postgresql(9.3).我有一个模型用户和模型公司.用户有一家公司,公司有很多用户.我正在努力寻找拥有超过5个用户的所有公司.
class Company < ActiveRecord::Base
has_many :users, dependent: :destroy
...
class User < ActiveRecord::Base
belongs_to :company
...
Run Code Online (Sandbox Code Playgroud)
问题与此类似:查找计数大于零的所有记录
如果我尝试上面提到的类似解决方案:
Company.joins(:users).group("company.id").having("count(users.id)>5")
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "company"
LINE 1: ... "users"."company_id" = "companies"."id" GROUP BY company.id...
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个不同的查询来获得结果,但我没有这样做.我可以使用SQL,但它似乎很愚蠢,因为这应该可以使用ActiveRecord轻松实现.
感谢所有的答复 :)
在当前设置中,有两个 Mongo Docker 容器,在主机 A 和 B 上运行,Mongo 版本为 3.4,并在副本集中运行。我想将它们升级到 3.6 并增加一个成员,以便容器可以在主机 A、B 和 C 上运行。容器有 8GB 内存限制并且没有分配交换(当前),并且在Rancher 中进行管理。所以我的计划是启动三个新容器,为它们初始化一个副本集,从 3.4 容器中进行转储,然后将其恢复为新的副本集 master。
转储很顺利,它的大小约为 16GB。当我尝试将其恢复到新的 3.6 master 时,恢复开始正常,但是在恢复了大约 5GB 的数据后,mongo 进程似乎被 OS/Rancher 杀死,而容器本身没有重新启动,MongoDB 进程只是崩溃并重新加载自己。如果我再次运行 mongorestore 到同一个数据库,它会说所有已经插入的条目的唯一键错误,然后从它停止的地方继续,只在 5GB 左右后再次执行相同的操作。所以看起来 mongorestore 将它恢复的所有条目加载到内存中。
所以我必须为此找到一些解决方案,并且:
我有一个 React 类(JSX),其中包含以下(这里稍微简化了)代码:
var Select = React.createClass({
onChange: function (ev) {
console.log(ev.target.value);
},
render: function() {
var optionsHtml = this.state.options.map(function (el) {
console.log(this.props.getValue(el);
return (
<option key={this.props.getValue(el)}
value={this.props.getValue(el)}> { this.props.getLabel(el) }
</option>
)
});
return <select onChange={this.onChange}>
{optionsHtml}
</html>
}
Run Code Online (Sandbox Code Playgroud)
在渲染函数中,console.log 在初始化 Options-HTML 并设置值时返回整数值(即 1, 2, 3),但是在 onChange-method 中的值是一个字符串(即 "1", "2 ", "3") 当实际的选择框值改变时。
解决此问题的一种方法是在 onChange 中使用该值之前检查并将其转换为 Number,但还有其他方法可以做到吗?
编辑:
选项数组可能看起来像这样
var options = [
{ id: 1, name: "Test" },
{ id: 2, name: "Test2" },
{ id: 3, name: …
Run Code Online (Sandbox Code Playgroud) 我想向客户端提供加密令牌,并且我使用 javax.crypto.Cipher 进行加密。根据我的阅读,不建议将 ECB 作为加密模式,因此我使用带有初始化向量的 CBC 和 TripleDES 作为密码方法。据我了解,有几点是正确的。
因此,对于这些情况,我通过存储附加到加密字节数组的 IV 来实现我的实现,并且在解密阶段,IV 从字节数组中切出并用于解密。以下是 Scala 代码,但在 Java 中不会有太大差异。
val algorithmName = "TripleDES"
def encrypt(bytes: Array[Byte], secret: String): Array[Byte] = {
val secretKey = new SecretKeySpec(secret.getBytes("UTF-8"), algorithmName)
val encipher = Cipher.getInstance(algorithmName + "/CBC/PKCS5Padding")
val iv = encipher.getParameters.getParameterSpec(classOf[IvParameterSpec])
encipher.init(Cipher.ENCRYPT_MODE, secretKey, iv)
encipher.doFinal(bytes) ++ iv.getIV
}
def decrypt(bytes: Array[Byte], secret: String): Array[Byte] = {
val secretKey = new SecretKeySpec(secret.getBytes("UTF-8"), algorithmName)
val encipher = Cipher.getInstance(algorithmName + "/CBC/PKCS5Padding") …
Run Code Online (Sandbox Code Playgroud) javascript ×2
scala ×2
activerecord ×1
android ×1
baseadapter ×1
bloodhound ×1
docker ×1
drawerlayout ×1
encryption ×1
java ×1
jquery ×1
json ×1
jsx ×1
mongodb ×1
mongodb-3.6 ×1
mongorestore ×1
postgresql ×1
query-string ×1
rancher ×1
react-jsx ×1
reactjs ×1
ruby ×1
security ×1
sql ×1
typeahead.js ×1