小编Dav*_*arr的帖子

尝试在td中居对齐按钮

我在td中按下按钮时遇到了麻烦.

这可能是一个简单的CSS问题,但该应用程序使用bootstrap,AngularJS,AngularJS-ui-bootstrap和ngTable.我已将所有这些组件都包含在我的plunkr中.

我试图用按钮在td上设置"horizo​​ntal-align:middle",但似乎没有得到应用.按钮仍然靠在单元格的左侧.

html css angularjs twitter-bootstrap-3 ngtable

27
推荐指数
3
解决办法
8万
查看次数

如何在没有分页装饰的情况下渲染ngTable?

在我的小型AngularJS应用程序中,我使用ngTable库渲染了几个表.只有一个可以使用分页.其他人总是适合不到一页.每个渲染的ngTable似乎都在表格下面添加了"10 25 50 100"选择器.对于我的大多数桌子来说,这是浪费空间而且无法使用.如何删除该部分并恢复该空间?

html javascript angularjs ngtable

27
推荐指数
2
解决办法
3万
查看次数

为什么我的java lambda使用虚拟赋值比没有它更快?

我知道对Java微基准测试做出判断是非常令人担忧的,但我看到的东西看起来很奇怪,我想得到一些解释.

请注意,我没有使用JMH框架.我知道它,但我不想为此而去那么长.

我将提供整个代码示例,但总之,当我测试这两种方法的性能时

private FooPrime[] testStreamToArray(ArrayList<Foo> fooList) {
    return (FooPrime[]) fooList.stream().
                map(it -> {
                    return new FooPrime().gamma(it.getAlpha() + it.getBeta());
                }).
                toArray(FooPrime[]::new);
}

private FooPrime[] testStreamToArray2(ArrayList<Foo> fooList) {
    return (FooPrime[]) fooList.stream().
                map(it -> {
                    int stuff = it.getAlpha().length();
                    return new FooPrime().gamma(it.getAlpha() + it.getBeta());
                }).
                toArray(FooPrime[]::new);
}
Run Code Online (Sandbox Code Playgroud)

我发现非常令人惊讶的结果.在较大的代码示例中,我正在测量四种不同的方法,前三种方法的性能非常接近.它们每次迭代运行大约50k ns.但是,第二个代码示例始终只占该总数的一半.那就对了.它并不慢,它的速度要快得多.

最后一次运行显示如下数字:

manualcopy:54575 ns
toarray:53617 ns
streamtoarray:52990 ns
streamtoarray2:24217 ns
Run Code Online (Sandbox Code Playgroud)

每次运行都有与此类似的数字.

我现在将提供整个类和基类.请注意,我确实有一个"预热"通道,在开始计时之前,我会在测试中执行几千次.另请注意,虽然最后运行"testStreamToArray2",但我也尝试将该块移动到第一个测试,并且数字大致相同.注释掉的行可以让我相信这些方法实际上正在做某事(时间与那些没有注释掉的行的时间差不多).

package timings;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ListToArrayOfPrimesTiming {

    public static void main(String[] args) { …
Run Code Online (Sandbox Code Playgroud)

java performance lambda

17
推荐指数
1
解决办法
606
查看次数

"@ + id"是什么意思?

我已经阅读了很多Android文档,但我还没有找到任何声明说明"@ + id"的id值前缀是什么意思.我知道"@string"及其变体是什么意思,但不知道"+"的变化.除了给我答案之外,你能告诉我Android文档在哪里记录了吗?

android

15
推荐指数
1
解决办法
8680
查看次数

为什么Spring会忽略我的@DependsOn注释?

我使用Spring 3.1.3作为webapp,使用XML配置和组件扫描.

我意识到其中一个扫描的组件必须在其他几个之前初始化.在需要构造后初始化的所有类上,我在方法上有一个@PostConstruct注释.

为了设置依赖顺序,我将'@Component'更改为'@Component("configData")'在需要在其他之前构建后的类上.然后我在每个类定义之前添加了'@DependsOn("configData")',需要在"configData"bean之后进行后构建.

从我读过的内容来看,这就是我需要强制执行依赖顺序的全部内容.

然后,我构建了所有内容,设置了断点,并启动了应用程序.我希望在任何依赖bean之前点击"configData"bean中的断点.这不是发生的事情.第一个断点位于其中一个依赖bean的"init"方法中.

然后我更改了我的"log4j.xml"以将"debug"设置为"org.springframework"的日志记录级别并重新进行测试.断点行为是相同的,我的日志记录没有显示有关Spring初始化的任何调试信息(我已经调试了log4j初始化本身,所以我确认我为"org.springframework"设置了DEBUG).

我可能会失踪什么?

更新:

如果重要的话,这里有几个我在这里做的骨架例子.

@Component("configData")
public class ConfigData {
    ....
    @PostConstruct
    public void init() {
        ....
    }
}

@Component
@DependsOn("configData")
public class ClassDependentOnConfigData extends BaseClass {
    ....
    @Override
    @PostConstruct
    public void init() {
        super.init();
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

重申一下,我在运行时发现的是"ClassDependentOnConfigData"中的"init()"方法是由Spring在"ConfigData"中的"init()"方法之前调用的.

另请注意,"BaseClass"对于"ConfigData"具有"@Autowired".

java spring

15
推荐指数
2
解决办法
2万
查看次数

启动avd失败,说它找不到模拟器,但它存在

我在Ubuntu 12.0.4上安装了SDK.我启动了SDK管理器并更新了几个包.

我跑了avd经理并试图创建一个avd,但它失败了,没有任何信息.

然后我尝试从命令行创建avd,使用我试图从gui使用的相同信息,它工作.

当我尝试启动AVD时,它失败了(一些字符串被省略):

Failed to start emulator: Cannot run program "<myhome>/apps/android/android-sdk-linux/tools/emulator": java.io.IOException: error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我在查找此文件时看到的内容:

$ ls -lt <myhome>/apps/android/android-sdk-linux/tools/emulator
-rwxrwxr-x 1 <me> <me> 24828 May 25 08:20 <myhome>/apps/android/android-sdk-linux/tools/emulator*
Run Code Online (Sandbox Code Playgroud)

如您所见,它正在寻找DOES的路径存在.

这里发生了什么?

ubuntu android emulation android-virtual-device

13
推荐指数
2
解决办法
8896
查看次数

如何在运行时表示Spring <task:scheduled>对象?

我有一个使用"task:scheduler"和"task:scheduled-tasks"元素的应用程序(后者包含"task:scheduled"元素).这一切都很好.

我正在尝试编写一些内省"应用程序配置"的代码,以获得一些重要信息的简短摘要,例如安排的任务以及他们的日程安排.

我已经有一个有一堆"@Autowired"实例变量的类,所以我可以遍历所有这些.很容易添加"List"来获取所有TaskScheduler对象.我只有两个,我在每个任务中都有一组不同的计划任务.

我在那些TaskScheduler对象中看不到的东西(它们实际上是ThreadPoolTask​​Scheduler对象)看起来像是一个计划任务列表,所以我猜测计划任务列表会记录在其他地方.

我可以使用哪些对象来内省计划任务集以及它们所在的线程池?

spring

13
推荐指数
2
解决办法
6826
查看次数

drawable与drawable-ldpi/drawable-mdpi

所有Android文档都提到了"drawable"目录.但是,当我在Eclipse中创建一个Android项目时,它不会创建一个"/ res/drawable"目录,但它会创建"/ res/drawable-ldpi"和"/ res/drawable-mdpi".我想这些与像素分辨率有关,但这究竟发生了什么?当我逐步完成教程时,我手动创建了一个"可绘制"目录并将我的资源放在那里,但我需要吗?如果仅存在"drawable- {l | m} dpi",对"/ res/drawable /"的引用是否有效?

android

12
推荐指数
1
解决办法
2万
查看次数

使用$ location和$ anchorScroll将表行滚动到视图中

我正在尝试使用$ anchorScroll向下滚动页面以确保显示一行表.我已经阅读了大多数关于$ anchorScroll的SO主题和文档.据我所知,我正确使用它.我已经使用Firebug逐步完成了代码,看来我正在使用的元素ID是正确的.

当我执行应该更改滚动位置的函数时,它会更改滚动位置,但它会向上滚动,一直向上移动.我要滚动到的"目标"元素是在我执行函数的页面的下方.

没有错误消息,它只是没有做我需要的.

这是我使用的简单函数:

$scope.scrollTo = function (elementId) {
        console.log("element[" + angular.element(elementId) + "]");
        $location.hash(elementId);
        $timeout(function() {
            $anchorScroll();
        });
    };
Run Code Online (Sandbox Code Playgroud)

我也尝试更改对此的引用,以便它不是针对表行,而是以包围表的accordion div为目标,但这没有任何区别.它仍然只是跳到页面顶部.

请注意,在我调用"scrollTo"之前,我首先要确保打开带有表的手风琴.在任何情况下,即使手动打开它仍然无法正确滚动.

更新:

这是我要尝试滚动到的HTML的一部分:

                <div ng-controller="WorkflowDefsCtrl">
                <pane accordion-group heading="Workflows" is-open="accordionActiveFlags.workflowDefs" id="workflowDefs">
                    <label for="workflowDefsTable">Workflow Definitions</label>
                    <table id="workflowDefsTable" ng-table class="table">
                        <tr ng-repeat="workflowDef in sunlightConfig.workflowDefinitions | orderBy: workflowDef.order" id="workflowDef{{workflowDef.id}}">
                            <td data-title="'ID'">{{workflowDef.id}}</td>
                            <td data-title="'Name'">{{workflowDef.name}}</td>
                            <td data-title="'Label'">{{workflowDef.label}}</td>
                            <td data-title="'Order'" class="text-right">{{workflowDef.order}}</td>
                            <td data-title="'Render?'">{{workflowDef.render}}</td>
                            <td data-title="'Query Fragment'">{{workflowDef.queryFragment}}</td>
                            <td data-title="'Query Order'" class="text-right">{{workflowDef.queryOrder}}</td>
                        </tr>
                    </table>
                </pane>
            </div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试的两个测试用例是元素"workflowDefs"和任何"workflowDef {{workflowDef.id}}"元素.

更新:

我增强了我的"scrollTo"方法来处理滚动到刚刚变得可见的元素.然而,这没有任何区别.无论如何,它仍然只是滚动到顶部.

更新:

今天我意识到"angular.element"的字符串参数应该是CSS选择器,而不是元素id,所以我不得不添加"#"作为前缀.这导致找到正确的元素,但遗憾的是它仍然对显示没有影响.它仍然不会滚动到元素.

我的新"scrollTo"函数如下所示:

    scrollTo:   function …
Run Code Online (Sandbox Code Playgroud)

angularjs

12
推荐指数
1
解决办法
2万
查看次数

使用AngularJS ngTable自定义过滤器

我正在尝试使用ngTable构建一个表,但使用不同于ngTable页面示例中描述的自定义过滤.

我想要过滤,但我不希望ngTable呈现过滤器选择器.我想自己渲染它们(在表格上方),然后在我的"getData()"方法中引用它们.

前面提到的例子没有解释任何一种机制是如何工作的.我不知道在每个"td"元素的"filter"属性中确切需要指定什么.我理解AngularJS $ filter函数的基本语法,但我不清楚ngTable在做什么.从一个例子看,我看起来只能进行"等于"检查,这只会选择相关列值等于过滤值的行.这不是我需要的.

我的表有几列.其中两个被称为"key"和"failed",分别是string和boolean.当我在表格上方渲染这些过滤字段时,我需要为"失败"过滤器设置自定义标签.过滤"key"列应该将过滤器值与"key"值的任何子字符串匹配.例如,如果我的键值为"abc","abac"和"def",则过滤值"a"将导致前两个条目显示,而不显示"def"条目.

更新:

与此相关,我希望我能弄清楚如何做这样的事情:

假设我的表元素中有一个ngRepeat表达式,使用"standard"angularjs过滤器:

"item in $data | customfilter:param | anothercustomfilter:param"
Run Code Online (Sandbox Code Playgroud)

我们知道这不太有效,因为这些过滤器仅适用于从"getData()"方法获得的一个页面切片.我真正希望能够在我的"getData()"方法中做的只是访问整个过滤器链,包括参数表达式,并简单地将一个不同的数组传递给它,作为整个原始数据列表,而不仅仅是页面切片.

与此同时,我需要通过在正常处理中执行该过滤器链来"关闭"过滤angularjs自己做的事情.

这听起来很难,但我发现当前的API需要在html和javascript之间进行大量的耦合.如果html可以指定所需的过滤,那将是很好的,javascript将只使用整个过滤器链,但在整个数据列表上使用它,而不仅仅是页面切片.

更新:

以下是我的HTML的相关摘录:

<label for="keysFilter">Filter Keys:</label>
<input id="keysFilter" type="text" ng-model="keysFilter"/>
<label for="showOnlyFailed">Show only queries that failed?</label>
<input id="showOnlyFailed" type="checkbox" ng-model="showOnlyFailed"/>
<table ng-table="tableParams" table-pagination="custom/pages" class="table">
<tr ng-repeat="queryInfo in $data"> <!--  | filterFailed:showOnlyFailed | filterMatchingKeys:keysFilter -->
Run Code Online (Sandbox Code Playgroud)

这是我的tableParams代码:

$scope.tableParams  = new ngTableParams({
    page: 1,
    count: 10,
    sorting: {
        lastRun: 'desc'
    }
},
{
    debugMode: true,
    total:  $scope.completedQueries.length,
    getData:    function($defer, params) {
        var orderedData …
Run Code Online (Sandbox Code Playgroud)

angularjs ngtable

12
推荐指数
2
解决办法
3万
查看次数