使用angularjs,我正在显示这样的2级列表
- first main item
- first subitem of the first main item
- second subitem of the first main item
- AN EMPTY ITEM AS PLACEHOLDER TO ENTER THE NEXT SUBITEM
- second main item
- first subitem of the second main item
- second subitem of the second main item
- AN EMPTY ITEM AS PLACEHOLDER TO ENTER THE NEXT SUBITEM
Run Code Online (Sandbox Code Playgroud)
为了节省空间,我只想在相应的任何东西div都有焦点的情况下展示PLACEHOLDER ,这样只有一个这样的占位符.我知道有ngFocus,但我更喜欢比创建大量事件处理程序更简单的东西.也许是这样的:
<div ng-focus-model="mainItem.hasFocus" ng-repeat="mainItem in list">
... main item line
... all …Run Code Online (Sandbox Code Playgroud) 我有一个M:N relationsship喜欢这里,除了那有一些信息是与相关联的AuthorBook实体.所以我想,我不需要@JoinTable在所有的,应该建立一个class AuthorBook由一个链接到每个Author与Book和附加信息,对不对?
我试过了
@Entity
public class AuthorBook {
@Id @ManyToOne Author author;
@Id @ManyToOne Book book;
@LobOrWhatever AdditionalInformation additionalInformation;
}
Run Code Online (Sandbox Code Playgroud)
我遇到了问题(我不记得了).所以我介绍了一个@GeneratedId int id并更改了引用@NaturalId.这个作品大多良好,但好笑,它迫使我通过连接Author和Book到Session#byNaturalId这是没有意义的我(我有识别码与实体应取在一起).我也试过了
session.byNaturalId(AuthorBook.class)
.using("author.id", someAuthorId)
.using("book.id", someBookId)
.load();
Run Code Online (Sandbox Code Playgroud)
但这被拒绝告诉我"author.id"不是自然的id(实际上这是真的,因为自然id是"作者",但它的"id"同样有效).
看着网络,我发现每个人都在这样的表中使用id而不是实体,所以我想知道我是不是在尝试一些不可能的东西....(或者是愚蠢的).
很多时候,在处理一件事情时,我会发现一些不相关的代码中的丑陋,修复它并单独提交.通常,有多个这样的提交,因为我后来发现类似的问题.
最后,我重新定义(重新排序和压缩),以便提交更有意义.有时候,我会遇到合并冲突,有时候生成的工作树与变基前的工作树不同.
在我的angularjs应用程序中,我在(几乎)每个页面上显示一个"主表".这个表有数千个逻辑行,但只有几个物理行(因此它可以快速避免巨大的DOM开销).
物理行数与数据无关(即使没有逻辑行,我也会显示它们).我实现了表的滚动,我希望它完全适合窗口,因此不需要滚动页面.
为此,我需要知道适合多少行.每行的高度是固定的(使用height: 20px !IMPORTANT和overflow: hidden).该表是页面上的最后一件事.所以在理论上,我所需要的只是
var t = $("main-table");
var extraHeight = $(window).height - t.position().top - t.height() - someReserve;
var extraRows = Math.floor(extraHeight) / normalRowHeight);
physicalRows.length += extraRows;
Run Code Online (Sandbox Code Playgroud)
问题是我不知道价值何时稳定下来.我开始physicalRows.length = 10执行上面的代码后,我应该得到正确的长度.但我不...所以我使用迭代它$timeout,它的工作原理.
但随着桌子的增长和随机收缩,它看起来不太好.例如,我得到以下长度:
10 -> 33 -> 31 -> 30 -> 30 (done)
Run Code Online (Sandbox Code Playgroud)
调整数字并没有帮助,即使加倍normalRowHeight也没有避免超调.我试图限制增长,以避免萎缩.当窗口滚动条暂时显示时,收缩看起来特别糟糕,使得正确的桌边向左和向后跳跃.但唯一有效的是
extraRows = Math.max(extraRows,1);
随着桌子逐渐增长,这看起来很糟糕.没有它,我偶尔会得到一个类似的序列
10 -> 33 -> 56 -> 36 -> 31 -> 30 -> 30 (done)
Run Code Online (Sandbox Code Playgroud)
增加到56来自HTML在迭代之间没有更新.
我能做什么?有没有办法找出尺寸合适的时候?
我介绍了迭代计算,因为直接计算不正常.问题有多种原因:
10 -> …我有一个(自制)表,有几个物理行和许多逻辑行,我想用键盘滚动(也).如果一个后代被聚焦,它理解了键,我希望事件由后代处理并被我的表忽略.
也许代码说清楚了:
scroll.keydown = function(e) {
if (e.shiftKey | e.controlKey | e.altKey) return;
var isText = e.target.type === "text";
var K = $.ui.keyCode;
switch (e.keyCode) {
case K.HOME: if (isText) return; scroll.move(-1000000); break;
case K.END: if (isText) return; scroll.move(+1000000); break;
case K.PAGE_UP: scroll.move(-10); break;
case K.PAGE_DOWN: scroll.move(+10); break;
case K.UP: scroll.move(-1); break;
case K.DOWN: scroll.move(+1); break;
default: return;
}
e.preventDefault();
};
<table tabindex="0" ng-keydown="scroll.keydown($event)" ...>
... <input ...>
Run Code Online (Sandbox Code Playgroud)
它工作得很完美,但它非常愚蠢:表知道它包含input元素,并且它知道这样的元素可以利用例如HOME密钥,所以它做了一个测试,不管它.
那是非常错的.现在,我添加了一个select …
我正在使用PostUpdateEventListener注册的via
registry.appendListeners(EventType.POST_COMMIT_UPDATE, listener)
Run Code Online (Sandbox Code Playgroud)
以及其他一些听众,以便跟踪Hibernate所做的更改.这很好用,但是,我看到一个问题:
比方说,对于跟踪一些amount通过id,我简单地执行
amountByIdConcurrentMap.put(id, amount);
Run Code Online (Sandbox Code Playgroud)
在每一个POST_COMMIT_UPDATE(让我们忽略其他操作).问题是这个调用在提交后的某个时间发生.因此,两个提交一个接一个地写一个相同的实体,我可以以错误的顺序接收事件,最终amount存储旧的.
我在做什么基本上是:
async function doItAll(ownEdits: Array<TextEdit>) {
const editor: TextEditor = await getEditor();
applyOwnChanges(editor, ownEdits);
await commands.executeCommand('editor.action.organizeImports',
editor.document.uri.path);
await editor.document.save();
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但在完成之前save发生,当导入被修改时,我最终得到一个肮脏的编辑器。 organizeImports
我tripple 检查我没有忘记await关键字,但它的工作原理就像它不存在一样。
这可能是一个错误,或者我可能正在做或期待一些错误的事情。我是吗?
plugins async-await typescript visual-studio-code vscode-extensions
首先我想问为什么Java禁止内部类中的静态字段?,但问题已经出现了.serialVersionUIDBozho的回答消除了我给予他们()的原因.但是,我仍然很好奇:
静态字段是仅在源代码中还是在类文件中禁止?
顺便说一句,这是一个令人信服的理由,为什么禁止这种行为还有待发明.在C中,即使在函数内部也允许使用静态变量.它们的寿命与任何其他静态变量相同,只是它们的可见性不同.同样适用于Java.
我需要类似以下的东西
enum EE {
A("anything"),
B("beta"),
...
Z("zulu"),
ALL,
;
EE(String s) {
this.s = s;
}
EE() {
String s = "";
for (EE ee : values()) { // PROBLEM HERE
if (ee != ALL) s += " " + ee.s;
}
this.s = s;
}
}
Run Code Online (Sandbox Code Playgroud)
创建时ALL我想访问枚举的其他成员.由于此时values()返回null,上述方法无效.使用A,, B... Z显式不编译.我完全理解为什么这个鸡蛋问题会发生,但我正在寻找一个很好的解决方法.
不,ALL从中删除EE不是一种选择.
在服务器(嵌入式Jetty)上,我需要重定向到其他端口,而其他所有内容均保持不变,例如,从
http://com.example.myserver:1234/whatever?with=params#and-hash?and=whoknowswhat
Run Code Online (Sandbox Code Playgroud)
至
http://com.example.myserver:5678/whatever?with=params#and-hash?and=whoknowswhat
Run Code Online (Sandbox Code Playgroud)
看来我必须根据我不太了解的内容来组成结果URL:
java ×5
angularjs ×3
hibernate ×2
jquery ×2
async-await ×1
concurrency ×1
enums ×1
focus ×1
git ×1
html ×1
html-table ×1
javascript ×1
keydown ×1
many-to-many ×1
oop ×1
plugins ×1
rebase ×1
transactions ×1
typescript ×1