小编Joh*_*isz的帖子

当状态改变时,用状态数据发送ajax请求

我有一个反应组件,我在其中使用日期选择器.基于所选日期的值,我发送一个ajax请求来获取数据.我没有使用像redux或flux这样的框架.

export default class MyComponent extends Component {
    constructor(props) {
        super(props);
    }

    componentDidMount() {
        // Initial fetch request based on the default date
    }

    onDateSelectionChanged(fromDate, toDate) {
        this.setState({
            fromDate,
            toDate
        });
    }

    render() {
        return (
            <div className="row">
                <DateRangePicker callBackParent = {this.onDateSelectionChanged}/>
                {/* other stuff */}
            </div>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

现在假设我将日期更改为另一个日期.再次获取数据的最佳方法是什么?我应该再次发出请求onDateSelectionChanged还是有生命周期方法?

javascript ajax reactjs

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

如何使用AMD模块运行编译为单个文件的TypeScript应用程序?

我确信我在这里遗漏了一些完全无足轻重的东西,但是对于它的生命我无法弄明白.直到最近我才开始使用AMD(RequireJS).我的应用程序将(将)在浏览器中运行.


建立

在打字稿1.8,这是可能的,以tsc采用AMD当外部模块组成成一个单一的输出文件的整个项目.

出于这个原因,我最终决定抛弃内部模块并将我的所有VS2015项目.ts.tsx文件外部模块,然后使用以下编译器参数将它们编译为单个文件:

--module AMD --outFile main.js
Run Code Online (Sandbox Code Playgroud)

产量

如预期的那样创建输出main.js文件,列出了它是这是该项目组成部分的所有模块:

main.js

define("Project/MainModule", ["require", "exports" ...], function (require, exports ...) {
    "use strict";
    console.log("MainModule defined");
    // ...
});

...    
Run Code Online (Sandbox Code Playgroud)

用法(?)

现在,我如何Project/MainModule运行 - 例如 - index.html(以便将"MainModule定义"记录到控制台中)?我加载了RequireJS来处理AMD语法,以及为立即加载指定的main.js文件:

的index.html

<script data-main="main" src="Require.js"></script>
Run Code Online (Sandbox Code Playgroud)

这正确加载main.js,我通过console.log在该文件中的大量定义列表(外部模块)之后包含一个调用来确保.请原谅我,如果这是一个微不足道的问题,我找不到任何关于如何使用这种方法的编译应用程序(可能我没有使用正确的关键字?).


编辑:我尝试按名称要求模块:

的index.html

<script>
    window.onload = function () {
        require(["Project/MainModule"], function () {
            // this
        });
    }
</script>
Run Code Online (Sandbox Code Playgroud)

......但这并不好,RequireJS无法找到该模块.

amd typescript

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

按值选择<select>项

我有

<select id="x">
    <option value="5">hi</option>
    <option value="7">hi 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想要一个javascript函数,它允许我选择并显示<option>id作为默认值.换句话说,我想做一个setOption(5)<option>值"5"作为默认值显示在组合框中.

那可能吗?

html javascript option

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

平滑数组的值

如果我有一个数组,如[3,5,0,8,4,2,6],有没有办法"平滑"这些值,使它们彼此更接近,并显示更少的方差?

我已经研究了使用高斯函数对一个1维案例进行窗口化数据,这是我的数组,但是在实现它时遇到了麻烦.这个线程似乎正好解决了我的需要,但我不明白用户naschilling(第二篇文章)如何提出高斯矩阵值.

背景:我正在研究音乐波形发生器(借用SoundCloud的设计),它在时间t映射歌曲的振幅到相应的条形高度.不幸的是,有很多噪音,当程序映射出微小的振幅导致高度突然下降时,它看起来特别难看.我基本上想要平滑酒吧高度,所以他们不是那么多样化.

我正在使用的语言是Javascript.

编辑:对不起,让我更具体地说"平滑"值.根据上面链接的线程,用户采用了一个数组

[10.00, 13.00, 7.00, 11.00, 12.00, 9.00, 6.00, 5.00]
Run Code Online (Sandbox Code Playgroud)

并使用高斯函数将其映射到

[ 8.35,  9.35, 8.59,  8.98,  9.63, 7.94, 5.78, 7.32]
Run Code Online (Sandbox Code Playgroud)

注意这些数字是如何彼此更接近的.

编辑2:它工作了!感谢用户Awal Garg的算法,结果如下:

没有平滑 一些平滑 最大平滑度

编辑3:这是我在JS的最终代码.我调整它,以便数组的第一个和最后一个元素能够通过环绕数组来找到它的邻居,而不是调用它自己.

var array = [10, 13, 7, 11, 12, 9, 6, 5];

function smooth(values, alpha) {
    var weighted = average(values) * alpha;
    var smoothed = [];
    for (var i in values) {
        var curr = values[i];
        var prev …
Run Code Online (Sandbox Code Playgroud)

javascript arrays smoothing

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

当"not in"语句存在时,mysql不使用索引

表结构是:

CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `from` int(10) unsigned NOT NULL,
  `to` int(10) unsigned NOT NULL,
  `message` text NOT NULL,
  `sent` int(10) unsigned NOT NULL DEFAULT '0',
  `read` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `direction` tinyint(1) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `one` (`to`,`direction`,`from`,`id`),
  KEY `two` (`from`,`direction`,`to`,`id`),
  KEY `three` (`read`,`direction`,`to`),
  KEY `four` (`read`,`direction`,`from`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我有一个奇怪的问题.请查看以下查询:

select test.id, test.from, test.to, test.message, test.sent, test.read, test.direction from test 
where (

    (test.to …
Run Code Online (Sandbox Code Playgroud)

mysql

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

提高CSS缩小尺寸元素的图像质量

我正在使用的缩小图形编辑器的内容transform: scale(x).当缩小比例向下0(不包括)时,当放大比例上升时,最大为1(包括),这意味着完全缩放或初始比例.

但是,当缩小时,图像质量开始变得非常嘈杂 - 请考虑以下示例,并注意缩小将使图像外观嘈杂:

var graphContainer = document.getElementById("graph-container");
var zoomInButton = document.getElementById("zoom-in-button");
var zoomOutButton = document.getElementById("zoom-out-button");
var zoomLevel = 1;

zoomInButton.addEventListener("click", function () {
    zoomLevel = Math.max(1, zoomLevel - 0.25);
    graphContainer.style.transform = "scale(" + (1 / zoomLevel) + ")";
});

zoomOutButton.addEventListener("click", function () {
    zoomLevel = zoomLevel + 0.25;
    graphContainer.style.transform = "scale(" + (1 / zoomLevel) + ")";
});
Run Code Online (Sandbox Code Playgroud)
#editor-container {
    background-color: #001723;
}

#graph-container { transform-origin: top center; }
Run Code Online (Sandbox Code Playgroud)
<div id="editor-container"> …
Run Code Online (Sandbox Code Playgroud)

javascript css canvas

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

如何让网站上的文字闪烁?

我正在建立一个网站,我希望页面上的超链接闪烁.它的速度无关紧要,但速度不会太慢.如果我可以让它以不同的颜色闪烁,那也很酷.

我尝试过使用文字装饰:眨眼; 在css中,但是没有用.

我已将此添加到css文件中,但现在是什么?:

blink {
-webkit-animation-name: blink; 
-webkit-animation-iteration-count: infinite; 
-webkit-animation-timing-function: cubic-bezier(1.0,0,0,1.0);
-webkit-animation-duration: 1s;
}
Run Code Online (Sandbox Code Playgroud)

似乎没有用

html css

11
推荐指数
1
解决办法
8万
查看次数

如何防止IE11和Microsoft Edge积极地限制事件?

背景

我有一个可以通过监听mousemove事件然后使用相应transform: translate3d(...)地移动屏幕的pannable应用程序窗口.它是一个大型应用程序,并且有相当多的UI工作可以促进此功能.这是MCVE,其中真正的工作负载被虚拟for循环模拟:

var container = document.getElementById("container");
var contents = document.getElementById("contents");
var input = document.getElementById("iterations");

var posX = 50;
var posY = 50;
var previousX = null;
var previousY = null;

var mousedownHandler = function (e) {
    window.onmousemove = globalMousemoveHandler;
    window.onmouseup = globalMouseupHandler;
    previousX = e.clientX;
    previousY = e.clientY;
}

var globalMousemoveHandler = function (e) {
    var now = Date.now();
    for (var i = 0, n = parseInt(input.value); i < n; i++);
    var elapsed …
Run Code Online (Sandbox Code Playgroud)

javascript microsoft-edge

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

编译输出中的TypeScript依赖项未按正确顺序解析

晚上好.

我有一个 - 看似 - 无意义的问题出现在从Typescript项目编译的Javascript输出中.这个问题似乎很复杂,但我会尽量简短明了.

我的Typescript项目名为"MyApp"(完全面向对象,在Visual Studio 2013中开发)设置为编译为单个输出文件(main.js,ECMAScript 5),然后在浏览器中运行.没有使用模块加载软件(如AMD),我希望保持这种方式.项目中引用的所有打字稿文件(.ts)都是自动编译的,无需手动引用它们/// <reference path>.

我有这个文件(Score.ts),深入到命名空间结构的一个级别:

居于App_Script/Score.ts

namespace MyApp.App_Script {
    export class Score {
        protected tracks: MyApp.App_Script.Entities.Track[];
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

命名空间结构反映了目录布局:

MyApp
|-- App_Script
|   |-- Entities
|   |   |-- Track.ts
|   |   |-- Note.ts
|   |   `-- ...
|   |-- Loader.ts
|   |-- Score.ts
|   `-- ...
`-- main.ts
Run Code Online (Sandbox Code Playgroud)

所述Score类在main.ts文件(该文件可以被认为是单数的"入口点"到应用程序),其内容被封闭到MyApp的命名空间实例:

main.ts

namespace MyApp {
    import Score = MyApp.App_Script.Score;

    var score: Score = new Score();

    score.init();
    ...
} …
Run Code Online (Sandbox Code Playgroud)

javascript typescript

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

如何在TypeScript中将其他参数传递给属性修饰器?

我有这个简单的类,其属性具有应用于它的属性装饰器:

class MyClass {
    @collectionMember
    public myProperty: number[];

    // ...
}
Run Code Online (Sandbox Code Playgroud)

和装饰功能:

function collectionMember(target: Object, propertyKey: string | symbol): void {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何将其他参数传递给装饰器函数?我尝试了以下但无济于事:

class MyClass {
    @collectionMember("MyProp")
    public myProperty: number[];

    // ...
}
Run Code Online (Sandbox Code Playgroud)

显然,这会产生错误

提供的参数与呼叫目标的任何签名都不匹配.

decorator typescript

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