小编tan*_*khi的帖子

锚点 href 与角度路由器链接

我正在尝试在我的 Angular 7 应用程序中使用带有 href 的锚标记。当我点击链接时,浏览器中的 url 会发生变化,但无法导航到该页面。如果我把 target="_self" 这样就可以了

<a href="/abcd" target="_self">Abcd</a>
Run Code Online (Sandbox Code Playgroud)

但这不仅适用于浏览器中的 url 更改,而且没有任何反应

<a href="/abcd">Abcd</a>
Run Code Online (Sandbox Code Playgroud)

好像我使用 Angular 路由并使用 RouterLink 一样工作。

<a routerLink="/abcd" routerLinkActive="active">Abcd</a>
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这种行为。

html javascript angular angular-router

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

Karma vs Chutzpah

我一直试图弄清楚在visual studio中编写/运行自动茉莉花测试的最佳方法是什么.目前,我正在使用茉莉花与Resharper(使用PhantomJS),测试可以从visual studio运行.现在我想将测试作为持续集成的一部分运行,并且正在使用TFS.在线搜索给我几个选项让我相当困惑.

1)使用Chutzpah作为测试运行器来执行茉莉花测试.

2)使用Karma作为测试运行器(但它也需要Chutzpah测试适配器用于visual studio).

我觉得使用Karma比其他任何东西都要好,但我无法理解Karma的好处,而不仅仅是使用Chutzpah.任何人都可以澄清应该是什么用法?

unit-testing jasmine chutzpah angularjs karma-runner

10
推荐指数
1
解决办法
3696
查看次数

比较两个小数

我想比较 c# 中的两个小数,并有一定的误差。任何人都可以指出以下代码的问题。请注意,我对小数点后 6 位感兴趣,之后我可以忽略这些值。

var valOne = decimal.Round(valueOne, 6);
var valTwo = decimal.Round(valueTwo, 6);
var difference = Math.Abs(valOne - valTwo);
if (difference > 0.0000001m) {
   Console.WriteLine("Values are different");
}
else {
    Console.WriteLine("Values are equal");
}
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法。

c# comparison decimal

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

Java Stream减少无法解释的行为

任何人都可以指出正确的方向,因为我无法理解问题。

我正在执行以下方法。

private static void reduce_parallelStream() {
    List<String> vals = Arrays.asList("a", "b");

    List<String> join = vals.parallelStream().reduce(new ArrayList<String>(),
            (List<String> l, String v) -> {

                l.add(v);

                return l;
            }, (a, b) -> {                   
                a.addAll(b);
                return a;
            }

    );

   System.out.println(join);

}
Run Code Online (Sandbox Code Playgroud)

它打印

[null,a,null,a]

我不明白为什么它将两个空值放在结果列表中。我希望答案是

[a,b]

因为它是并行流,所以第一个要减少的参数

新的ArrayList()

每个输入值a和b可能会被调用两次。

然后,累加器函数可能会被调用两次,因为它是parallelStream,并在每次调用中传递每个输入“ a和b”以及由种子值提供的列表。因此,将a添加到列表1,将b添加到列表2(反之亦然)。之后,组合器将合并两个列表,但不会发生。

有趣的是,如果我在累加器中放入一条print语句以打印输入值,则输出会更改。所以下面

private static void reduce_parallelStream() {
    List<String> vals = Arrays.asList("a", "b");

    List<String> join = vals.parallelStream().reduce(new ArrayList<String>(),
            (List<String> l, String v) -> {
                System.out.printf("l is %s", l);
                l.add(v);
                System.out.printf("l is %s", l);
                return l; …
Run Code Online (Sandbox Code Playgroud)

java reduce java-8 java-stream

4
推荐指数
1
解决办法
117
查看次数

在angularjs测试中验证$ httpBackend上的调用

我正在尝试为angularjs编写一个测试$ httpBackend的测试.以下是测试.

describe('test', function() {

    beforeEach(function (){
        module('abcApp');
    });

    var $httpBackend, filterService;
    beforeEach(inject(function($injector) {
        $httpBackend = $injector.get('$httpBackend');
        filterService = $injector.get('filterService');
    }));

    it('getCompany calls get on http with correct parameter', function () {
        $httpBackend.when('GET', 'api/Abc').respond([]);
        filterService.getAbc();
        $httpBackend.flush();
        expect($httpBackend.get).toHaveBeenCalled();
    });
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我收到以下错误: - 错误:预期间谍,但未定义.

任何想法如何我断言$ httpBackend.get已使用expect使用必需参数调用.

unit-testing jasmine angularjs

3
推荐指数
1
解决办法
2144
查看次数