小编Eli*_*cia的帖子

ESLint意外使用isNaN

我正在尝试isNaN在Node.js模块中使用箭头函数内的全局函数,但我收到此错误:

[eslint] Unexpected use of 'isNaN'. (no-restricted-globals)

这是我的代码:

const isNumber = value => !isNaN(parseFloat(value));

module.exports = {
  isNumber,
};
Run Code Online (Sandbox Code Playgroud)

我知道自己做错了什么吗?

PS:我正在使用AirBnB风格指南.

javascript eslint

120
推荐指数
3
解决办法
4万
查看次数

在TypeScript中将对象转换为接口

我正试图在我的代码中使用快速(使用正文解析器中间件)的请求正文进行接口,但它不起作用.有可能这样做吗?

这是我的界面:

export interface IToDoDto {
  description: string;
  status: boolean;
};
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试进行演员的代码:

@Post()
addToDo(@Response() res, @Request() req) {
  const toDo: IToDoDto = <IToDoDto> req.body;
  this.toDoService.addToDo(toDo);
  return res.status(HttpStatus.CREATED).end();
}
Run Code Online (Sandbox Code Playgroud)

最后,被调用的服务方法:

public addToDo(toDo: IToDoDto): void {
  toDo.id = this.idCounter;
  this.todos.push(toDo);
  this.idCounter++;
}
Run Code Online (Sandbox Code Playgroud)

我可以通过任何论点,这将工作正常.我已经读过在TypeScript中不存在强制转换而是类型断言,所以它只会告诉编译器一个对象的类型为x,所以...我错了吗?这样做的方法是什么?谢谢.

casting interface object typescript

59
推荐指数
3
解决办法
7万
查看次数

RxJ合并最新,而无需等待源观测站发出?

我有两个源可观测对象,只要有一个源可观测对象发出,就需要从那里计算一些数据。我正在尝试使用combineAll()运算符,但它仅在每个源可观察对象首次发出时才发出一个值。

是否有任何类似的运算符combineAll()在任何可观察到的源首次发出时发出?如果没有,最清楚的方法是什么?

我尝试过的

const source1$ = service.getSomeData();
const source2$ = service.getOtherData();

combineLatest(
  source1$,
  source2$
).pipe(
  map([source1Data, source2Data] => {
    // this code only gets executed when both observables emits for the first time
    return source1Data + source2Data;
  })
)
Run Code Online (Sandbox Code Playgroud)

javascript rxjs

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

为什么这不是JS中使用querySelectorAll的有效CSS选择器?

我试图在我的DOM中使用Vanilla JS img2x类中找到所有元素.我正在使用这样的querySelectorAll方法:

document.querySelectorAll('img.2x');
Run Code Online (Sandbox Code Playgroud)

但它会在控制台日志中抛出此错误:

Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document':
'img.2x' is not a valid selector.
Run Code Online (Sandbox Code Playgroud)

为什么img.2x不是有效的选择器?谢谢.

javascript css

7
推荐指数
1
解决办法
1058
查看次数

没有请求正文的 REST API PATCH

我正在开发用于事件管理的 API。我有基本的 GET 和 POST 方法,但现在我必须处理事件资源版本。

用户可以使用以下方法编辑所有事件信息:

  • /event/:eventId

但它也可以取消事件(不是删除它,而是改变它的status属性)。

我正在考虑使用这个端点:

  • PATCH/event/:eventId并发送一个只有新status属性值的正文。

我认为这是一个很好的方法,但后来我注意到状态只能设置为CANCELLED,在某些情况下,事件的其他允许状态会在业务逻辑中自动更改。

因此status,如果您只能将其更改为一个可能的值,则发送该字段根本没有意义。

因此,不向 PATCH 方法发送任何主体是否可能并且不是一种坏习惯?谢谢。

api rest patch

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

我的jQuery代码找到第一个父代有什么问题?

我正在开发一个具有树视图菜单的小应用程序,所以这是html:

<ul class="sidebar-menu">
    <li class="active"><a href="javascript:;"> ELEMENT 1 </a></li>
    <li class="treeview">
        <a href="javascript:;"> ELEMENT 2 <span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span></a>
        <ul class="treeview-menu">
            <li><a href="javascript:;"> ELEMENT 2.1 </a></li>
            <li><a href="javascript:;"> ELEMENT 2.2 </a></li>
        </ul>
    </li>
    <li><a href="javascript:;"> ELEMENT 3 </a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我正在尝试突出显示单击的li元素,将.active类添加到其中.但是,当您单击子元素时,我还要突出显示父元素.例如,如果您单击ELEMENT 2.1我想要突出显示的那个ELEMENT 2.

这是我要获取的jQuery代码,首先是单击的元素,然后它是li parent(:not由于其他原因,我不能在没有选择器的情况下执行此操作:

$(".sidebar-menu").on("click", "li:not(.treeview)", function(e){
    $(e.delegateTarget).parents("li").first();
}
Run Code Online (Sandbox Code Playgroud)

if语句按预期工作,但第二行总是undefined在控制台中给出错误.

jquery parent

5
推荐指数
1
解决办法
81
查看次数

运行集成测试时无法加载 ApplicationContext

我正在尝试运行 mvnintegration-test阶段,但在执行集成测试时出现Failed to load ApplicationContext错误(单元测试正确执行)。我正在SpringJUnit4ClassRunner使用类来运行我的测试。

这是完整的堆栈跟踪:

2017-02-09 03:22:15.705 [main] ERROR o.s.t.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5c072e3f] to prepare test instance [com.dentilax.app.accountservice.AccountServiceIT@768b970c]
java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) …
Run Code Online (Sandbox Code Playgroud)

junit spring maven applicationcontext

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

检查Angular单元测试中的单选按钮

我在Angular中有一个使用此HTML的组件:

<div class="row">
  <label for="tipo" class="column">Tipo: </label>
  <div *ngFor="let tipo of tipos" class="column">
    <input type="radio" name="tipo" [value]="tipo.id" 
      [(ngModel)]="movimiento.tipo" (ngModelChange)="alCambiarTipo()">
    <span class="{{tipo.texto | lowercase}}">{{ tipo.texto }}</span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

它有两个单选按钮,在更改时它会在我的组件中触发一个功能.在我的测试中,我想检查第二个单选按钮以测试我的函数被调用.我已经尝试过这段代码,但它不起作用:

it('should call alCambiarTipo on radio button change', () => {
  spyOn(component, 'alCambiarTipo').and.callThrough();
  let options: DebugElement[] = fixture.debugElement.queryAll(By.css('input[type="radio"]'));
  let secondOption: HTMLInputElement = options[1].nativeElement;
  secondOption.checked = true;
  expect(component.alCambiarTipo).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)

我也试过使用.click()输入,它也没有用.我该怎么做才能触发我的功能?谢谢.

PS:我也尝试改变模型添加component.movimiento.tipo = 1;和调用fixture.detectChanges(),它也无法正常工作.

unit-testing angular

5
推荐指数
2
解决办法
5206
查看次数

为什么保证金不会崩溃?

我从CSS和flexbox开始,我已经阅读了关于保证金崩溃的信息.我已经读过Bootstrap,例如避免它(我理解并同意它),但我希望边缘在特定情况下崩溃(你可以在上面的CodePen中看到).这是一系列标签,顶部和底部有20px的边距.当换行时,边距不会折叠,所以在两行标签之间我得到40px,但我想要与底部或顶部相同.

为什么利润不会崩溃,解决这个问题的最佳方法是什么?谢谢.

这是 CodePen.

这是HTML:

<main>
  <div class="main-wrapper">
    <div class="tags">
      <ul>
        <li>
          <a href="#">ELEMENT 1</a>
        </li>
        <li>
          <a href="#">ELEMENT 2</a>
        </li>
        <li>
          <a href="#">ELEMENT 3</a>
        </li>
        <li>
          <a href="#">ELEMENT 4</a>
        </li>
        <li>
          <a href="#">ELEMENT 5</a>
        </li>
      </ul>
    </div>
  </div>
</main>
Run Code Online (Sandbox Code Playgroud)

这是CSS:

$red: #FC575E;
$dark-grey: #3A4250;
$medium-grey: #e6e6e6;
$white: #FFFFFF;
$light-grey: #F1F4F5;
$width: 800px;

ul {
  list-style-type: none;
  padding-left: 0px;
}

a {
  text-decoration: none;
}

main {
  background-color: $light-grey;
  padding: 30px 0px;
}

.main-wrapper {
  max-width: $width;
  margin: auto; …
Run Code Online (Sandbox Code Playgroud)

css flexbox

5
推荐指数
1
解决办法
2678
查看次数

为什么改变弯曲方向会改变孩子的身高?

我正在尝试使用 Flexbox 进行媒体查询以在另一个下方显示输入,而不是在您这边。如您所见,使用我当前的代码,我得到了这个:

在此处输入图片说明

但是,如果我将 更改flex-directioncolumn,则输入宽度不是原始宽度。这是结果:

在此处输入图片说明

这是我的 HTML:

<div id="mc_embed_signup">
  <form action="//eliasgarcia.us8.list-manage.com/subscribe/post?u=55cf7078733f0b62eb97733e3&amp;id=ace40b1824" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
    <div id="mc_embed_signup_scroll">
      <label for="mce-EMAIL">No te pierdas ningún artículo</label>
      <div class="mc-wrapper">
        <input type="email" value="" name="EMAIL" id="mce-EMAIL" placeholder="Correo electrónico" required>
        <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
        <div style="position: absolute; left: -5000px;" aria-hidden="true">
          <input type="text" name="b_55cf7078733f0b62eb97733e3_ace40b1824" tabindex="1" value="">
        </div>
        <div>
          <input type="submit" value="Suscríbete" name="subscribe" id="mc-embedded-subscribe" class="button"> …
Run Code Online (Sandbox Code Playgroud)

css flexbox

5
推荐指数
1
解决办法
3763
查看次数