小编ghu*_*sse的帖子

清除IE10上带有清除图标的文本输入时触发事件

在chrome上,当用户单击"清除"按钮时,会在搜索输入上触发"搜索"事件.

有没有办法在Internet Explorer 10上的javascript中捕获相同的事件?

在此输入图像描述

javascript events html-input internet-explorer-10

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

无法使用jest模拟模块,并测试函数调用

我使用create-app-component创建了一个项目,它使用构建脚本(babel,webpack,jest)配置新的应用程序.

我写了一个我正在尝试测试的React组件.该组件需要另一个javascript文件,公开一个函数.

我的search.js文件

export {
  search,
}

function search(){
  // does things
  return Promise.resolve('foo')
}
Run Code Online (Sandbox Code Playgroud)

我的反应成分:

import React from 'react'
import { search } from './search.js'
import SearchResults from './SearchResults'

export default SearchContainer {
  constructor(){
    this.state = {
      query: "hello world"
    }
  }

  componentDidMount(){
    search(this.state.query)
      .then(result => { this.setState({ result, })})
  }

  render() {
    return <SearchResults 
            result={this.state.result}
            />
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的单元测试中,我想检查是否search使用正确的参数调用了该方法.

我的测试看起来像这样:

import React from 'react';
import { shallow } from 'enzyme';
import should from 'should/as-function'; …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocking reactjs jestjs

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

强制protobuf-net序列化所有默认值

我有一个使用protobuf-net序列化/反序列化的复杂模型,我们有几个错误,这个"功能"没有序列化默认值.

例:

[DataContract]
class Foo{
  public Foo(){
    // Value forced by constructor
    this.Value = 1;
  }

  // Buggy, when Value is set to zero
  [DataMember(Order = 1)]
  public double Value {get; set}
}
Run Code Online (Sandbox Code Playgroud)

当Value = 0时,它不是由protobuf-net序列化的,但在反序列化期间,构造函数强制Value为1(并且protobuf-net不会改变它).

为了使它工作,我需要强制protobuf-net序列化值,用:

  // Works fine
  [DataMember(Order = 1, IsRequired = true)]
  public double Value {get; set}
Run Code Online (Sandbox Code Playgroud)

但是,由于我们已经因为这个功能而出现了错误,我们希望为整个模型强制使用protobuf-net ,而不是标记每个属性.

可能吗?

c# serialization protobuf-net

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

为什么角度重定向到路线但加载错误的视图

我有一个基本的需求,我想用路线来解决:

  1. 定义了一堆路线
  2. 如果用户未经过身份验证,则会将其重定向到登录页面

我的问题是,第一次显示Web应用程序时,用户似乎被正确重定向,因为URI是正确的,但不是显示的视图(它对应于默认视图).

我已经为此创建了一个jsbin,如果你更愿意看到它是真的.该结果可以在这里看到.

重现步骤:

  1. 加载页面
  2. 您会看到needsAuth,这意味着needsAuth即使URI包含登录(对应于视图login),也会显示视图的内容
  3. 重新加载页面
  4. 你看'登录',意思是视图的内容 login

HTML代码:

<!DOCTYPE html>
<html ng-app='app'>
<head>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular-route.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div ng-view>
  </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是javascript代码:

var template = '{{vm.text}}';

angular
  .module('app', ['ngRoute'])
  .config(['$routeProvider', routes])
  .controller('needsAuthController', needsAuthController)
  .controller('loginController', loginController)
  .run(['$rootScope', '$location', registerRedirection]);

function routes($routeProvider){
  $routeProvider
    .when('/needsAuth', {
      controller: 'needsAuthController',
      controllerAs: 'vm',
      template: template
    })
    .when('/login', {
      controller: 'loginController', …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-routing

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