小编ref*_*tor的帖子

为什么setTimeout(fn,0)有时会有用?

我最近遇到了一个相当讨厌的错误,其中代码是<select>通过JavaScript动态加载的.这种动态加载<select>具有预先选择的值.在IE6中,我们已经有了修复所选内容的代码<option>,因为有时它<select>selectedIndex值与所选<option>index属性不同步,如下所示:

field.selectedIndex = element.index;
Run Code Online (Sandbox Code Playgroud)

但是,此代码无效.即使selectedIndex正确设置了字段,最终也会选择错误的索引.但是,如果我alert()在正确的时间插入声明,则会选择正确的选项.考虑到这可能是某种时间问题,我尝试了一些随机的东西,我之前在代码中看到过:

var wrapFn = (function() {
    var myField = field;
    var myElement = element;

    return function() {
        myField.selectedIndex = myElement.index;
    }
})();
setTimeout(wrapFn, 0);
Run Code Online (Sandbox Code Playgroud)

这有效!

我已经找到了解决问题的方法,但是我很不安,因为我不知道为什么这会解决我的问题.有人有官方解释吗?使用"稍后"调用我的功能可以避免哪些浏览器问题setTimeout()

javascript dom event-loop

833
推荐指数
11
解决办法
23万
查看次数

如何列出npm模块的所有版本?

为了查看节点模块[webpack]的所有版本,我在windows命令提示符下执行了以下命令

npm view webpack versions
Run Code Online (Sandbox Code Playgroud)

此命令仅显示前100个版本,稍后显示"331更多"文本.

我怎样才能列出所有版本?

node.js npm

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

了解DockerFile中的"VOLUME"指令

以下是我的"Dockerfile"的内容

FROM node:boron

# Create app directory
RUN mkdir -p /usr/src/app

# change working dir to /usr/src/app
WORKDIR /usr/src/app

VOLUME . /usr/src/app

RUN npm install

EXPOSE 8080

CMD ["node" , "server" ]
Run Code Online (Sandbox Code Playgroud)

在这个文件中,我期待"VOLUME./ usr/src/app"指令将主机中当前工作目录的内容挂载到容器的/ usr/src/app文件夹中.

如果这是正确的方法,请告诉我?

docker dockerfile

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

了解tsconfig中的"目标"和"模块"

下面是我的tsconfig.json文件,其中我将目标设置为"es5",模块设置为"es6"

{
   "compilerOptions": {
   "target": "es5",    
   "module": "es6"
   }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是因为模块[import/export]是es6和NOT es5的一部分,转换后的javascript代码不应该有import/export语句.但即使目标是es5,生成的javascript代码也有导入/导出语句,怎么可能?

typescript

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

在Angular 2中提交vs ngSubmit

为了在Angular 2中提交表单,我们可以使用表单的"submit"或"ngSubmit"事件.

<form #frm="ngForm" (submit)="add(frm.value)">
  ...
</form>

<form #frm="ngForm" (ngSubmit)="add(frm.value)">
  ...
</form>
Run Code Online (Sandbox Code Playgroud)

想知道两者的区别是什么?

angular

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

Angular 2中基于条件的点击事件

在我的应用程序中,我希望有基于条件的点击事件,

<div class="trashIconDiv" (click)="if(idx > 0) {removeSelected(item.spId)}">
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,只有当idx> 0时才应执行removeSelected函数,任何想法如何实现

angular

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

angular2是否有ngCloak

AngularJS 1.x具有ngCloak指令,用于防止浏览器以原始(未编译)形式短暂显示Angular html模板.

Angular 2是否具有任何此类指令或功能来防止此类原始(未编译)表单显示.

angular

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

如何在以后向package.json添加依赖项

在我的应用程序中,我使用以下命令安装了几个节点模块

 npm install <modulename>
Run Code Online (Sandbox Code Playgroud)

我忘了提"--save"将依赖列表保存到package.json文件.

现在我想更新package.json文件中的依赖项而不手动更新文件.知道如何做到这一点?

node.js

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

模块'TempModule'导入的意外值'DecoratorFactory'

在我的示例应用程序中,我编写了一个功能模块"TempModule",下面是代码.

import { NgModule } from '@angular/core';
import { CommonModule} from '@angular/common';

import { TempOneComponent } from './temp.one.component';
import { TempTwoComponent } from './temp.two.component';
import { tempRouting } from './temp.routing';



@NgModule({
declarations: [ TempOneComponent,
                TempTwoComponent],
imports: [ NgModule,
           CommonModule,
           tempRouting]
})

export class TempModule {}
Run Code Online (Sandbox Code Playgroud)

我指的是根模块中的TempModule,下面是根模块代码

import { NgModule }       from '@angular/core';
import { BrowserModule  } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';

//-- routing import
import { routing,
         appRoutingProviders} from './app.routing'; 

//-- root component import
import { AppComponent …
Run Code Online (Sandbox Code Playgroud)

angular

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

如何验证AoT是否正常工作[Webpack 2,Angular 2]?

在我的示例Angular 2 SPA中,我使用了Webpack 2

  1. 捆绑我所有的js文件
  2. 实现"Tree Shaking"以删除死代码并减少bundle js文件大小
  3. 并实现Ahead-of-time编译以进一步减少bundle js文件的大小.

通过创建webpack.config.js文件,我能够获得"1"和"2",以下是此文件的内容

'use strict';
const webpack = require('webpack');

module.exports = {
    devtool: 'source-map',
    entry: './src/main.js',       
    plugins: [

    new webpack.optimize.UglifyJsPlugin({
        minimize: true,
        compress: false
    })
    ],
    output: {
        filename:'./src/bundle.js'
    }
}
Run Code Online (Sandbox Code Playgroud)

"webpack.optimize.UglifyJsPlugin"插件执行Tree Shaking和minfication,将我的bundle.js文件大小从3 mb减少到1 mb.

接下来为了实现AoT编译,我使用了@ ngtools/webpack,以下是带有AoT相关代码的修改过的webpack.config.js文件.

'use strict';
const webpack = require('webpack');
const AotPlugin = require('@ngtools/webpack').AotPlugin;

module.exports = {
    devtool: 'source-map',
    entry: './src/main.js',
    module: {
        rules: [
            {
                test: /\.ts$/,
                loader: '@ngtools/webpack'
            }
        ]
    },
    plugins: [

    new webpack.optimize.UglifyJsPlugin({ …
Run Code Online (Sandbox Code Playgroud)

webpack angular

14
推荐指数
2
解决办法
3886
查看次数