小编Lou*_*uis的帖子

(new Array(10)).map(function(){return 1;})返回[,,,,, ...]为什么?

我希望以下代码返回 [1,1,1,1...]

(new Array(10)).map(function() { return 1;})
Run Code Online (Sandbox Code Playgroud)

但它回来了[, , , , , ...].

此外, (new Array(10)).length == 10(new Array(10))[0] == undefined是真实的.

而且z = function(){return 0;};表达z(undefined) === 0也是如此.

然而,我注意到它[,,,,,,,,,,].map(function() { return 1; })也会回归[,,,,....].

有谁能解释为什么?

javascript

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

使用 Mocha 有选择地运行测试用例

共有20个测试用例文件。我想测试一组特定的 10 个测试用例。是否有任何脚本文件或任何其他方法可以使用 Mocha 有选择地运行测试用例?

javascript mocha.js

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

如何在文件输入中捕获ngchange事件

我有一个文件输入

<input type="file" ng-change="action()">

现在在我的控制器中我不想做选择器和东西.所以我才有

$scope.action = () -> 
  ...
Run Code Online (Sandbox Code Playgroud)

但是,我想要一个特定的行为,只要用户选择一个文件调用$ scope.action,而不是onchange是否有角度的onselect事件?

javascript file onchange fileapi angularjs

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

在node.js中需要一个文件

你如何在node.js中需要一个文件?例如api.js:

var api = require(./api.js);
Run Code Online (Sandbox Code Playgroud)

这样做的最佳做法是什么?

require node.js

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

打字稿,AMD和模块名称

有没有办法从*.ts设置已编译模块的名称?一些tsconfig,json设置或一些可以做到这一点的Gulp插件.

目前我正在接受

define([], function(){ .. })
Run Code Online (Sandbox Code Playgroud)

但我不能像这样设置名称:

define('module-name', [], function(){ .. })
Run Code Online (Sandbox Code Playgroud)

尝试了一些gulp插件,但他们覆盖了源图信息,我放弃了浏览器中的"ts调试"功能

amd typescript gulp

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

如何防止文件中的 before 和 beforeEach 应用于所有文件中的所有测试?

我已经使用 mocha 自动化了我的 api。结构就像 -

1.对于每个 api 有一个api_namex.js文件,其中 mocha 测试驻留

  1. 每个api_namex.js文件具有一个描述()和多它()内的描述()

  2. 现在,如果我在api_namex.js文件之一(比如 api_name1.js)中使用beforeEach(),那么在运行涉及运行所有 api_namex.js 文件的整个测试套件时,所有这些文件都会调用 beforeEach()

我应该如何让它仅针对预期的 api_namex.js 文件运行? 之前也有同样的问题。

my_areas.js文件附在下面。我在这里使用了 beforeEach()。但是在运行整个测试套件时,这个 beforeEach 在每个测试用例之前都会被调用。我只希望在此 describe() 中的每个测试用例之前使用它

var should = require('should'),
    supertest = require('supertest'),
    servicesGenerator = require('../../utils/services_generator_test.js'),
    responseMsg = require('../../utils/response_messages.js'),
    helper = require('../../utils/helper.js'),
    testData = require('../../utils/test_data.js'),
    apiEndPoints = require('../../utils/api_endpoints.js');

beforeEach(function (done) {
    clearMyAreas();
    done();
});

describe('My Areas', function () {

    it('1: All Data Valid', function …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js

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

具有多个缓存的服务工作者

有许多示例用于使用类似于以下内容的单个缓存初始化服务工作者:

let cacheName = 'myCacheName-v1';
let urlsToCache = ['url1', 'url2', url3'];

self.addEventListener('install', function (event) {
  event.waitUntil(
    caches.open(cacheName).then(function (cache) {
      return cache.addAll(urlsToCache);
    }).then(function () {
      return this.skipWaiting();
    })
  );
});
Run Code Online (Sandbox Code Playgroud)

我希望在我的服务工作者上初始化多个缓存.动机是根据变化趋势对资产进行分组(例如,静态应用数据与css,javascript等).使用多个缓存,我可以将单个缓存(通过版本化的缓存名称)更新为缓存更改中的文件.理想情况下,我希望设置类似于以下的结构:

let appCaches = [{
    name: 'core-00001',
    urls: [
      './',
      './index.html', etc...
    ]
  },
  {
    name: 'data-00001',
    urls: [
      './data1.json',
      './data2.json', etc...
    ]
  },
  etc...
];
Run Code Online (Sandbox Code Playgroud)

到目前为止,我最好的尝试类似于:

self.addEventListener('install', function (event) {
  appCaches.forEach(function (appCache) {
    event.waitUntil(
      caches.open(appCache.name).then(function (cache) {
        return cache.addAll(appCache.urls);
      }));
  });
  self.skipWaiting();
});
Run Code Online (Sandbox Code Playgroud)

这种方法似乎有效.但是,我仍然是服务工人和承诺的新手.有些东西告诉我,这种方法有一个陷阱,我太缺乏经验,无法识别.有没有更好的方法来实现这个?

javascript service-worker

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

计算datetimepicker中2个日期之间的差异

我想计算两个日期之间的差异,一个是从dateTimePicker1中挑选出来的,另一个是2014年2月20日,并将其存储在一个字符串中以添加到我的数组中,并能够以另一种形式显示

这是我的代码:

    TimeSpan getDateDifference(DateTime date1, DateTime date2)
    {
        TimeSpan ts = date1 - date2;
        int differenceInDays = ts.Days;
        string differenceAsString = differenceInDays.ToString();
        return ts;

    }


    public class Patient
    {
        public string patientidString;
        public string firstNameString;
        public string lastNameString;
        public string dateString;
        public string differenceAsString;


        public Patient()
        {
            patientidString = "";
            firstNameString = "";
            lastNameString = "";
            dateString = "";
        }

    }


    //Array
    Patient[] patientInfo = new Patient[10];




    private void button1_Click(object sender, EventArgs e)
    {
        TimeSpan difference = getDateDifference(new DateTime(2014, 2, …
Run Code Online (Sandbox Code Playgroud)

c# string date visual-studio-2010 date-arithmetic

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

如何防止DataTables根据过时的已保存状态显示或隐藏列

我有一个由DataTables 1.10驱动的表.过滤已打开.当我在下面谈论"进行搜索"时,我正在讨论使用此表的过滤功能.

问题描述

stateSave关闭时一切正常.但是,当stateSave打开时,会发生以下情况:

  1. Alice以管理员身份登录.因为管理员拥有所有权限,所以当她搜索文章时,她可以看到所有文章.由于某些文章已发布且某些文章未发布,因此该表格中有一列显示哪些文章已发布,哪些文章未​​发布.到现在为止还挺好.

  2. 随机用户Bob访问该站点.随机用户无法看到未发布的文章,因此该表隐藏了显示发布状态的列.到现在为止还挺好.

  3. 爱丽丝退出了.她现在像一个随机用户访问该网站.所以她应该看到Bob看到的确切内容.但是,当她进行搜索时,她仍然会看到指示发布状态的列.

(注意:我在这里讨论的问题纯粹是用户界面之一.服务器确保非特权用户无法获得未发布文章的记录.但问题是附加列为非特权用户提供他们不需要的信息他们只能在搜索中看到发表的文章,因此他们不需要看到他们在搜索中获得的每篇文章都已发布.)

配置数据表的代码通过执行以下操作来隐藏发布列:

var columnDefs = [];
if (!privileged) {
    columnDefs.push({
        targets: [1],
        orderable: false,
        visible: false
    });
}
Run Code Online (Sandbox Code Playgroud)

columnDefs作为columnDefs选项传递给DataTables .

问题的技术原因

问题是DataTables将列可见性等内容存储到它保存的状态中localStorage.因此,当Alice注销并再次作为非特权用户进行搜索时,即使值columnDefs正确,它也会保存状态覆盖.当Alice是管理员时,该状态被存储,并且它声明了发布列是可见的,因此即使Alice以非特权用户身份访问该站点,它仍然可见.

我想要的是让用户从保存状态中受益,但避免在用户权限发生变化时保持此状态.

注意事项:

  1. 我不想使用,sessionStorage因为我希望状态在浏览器关闭之间保持不变,但在浏览器关闭sessionStorage时会被清除.

  2. 我不能使用服务器分配的会话cookie来检测登录和注销,因为它只是HTTP.此外,特权可能因其他原因而改变.

  3. 我不想随意设置保存状态的到期时间.

datatables local-storage

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

基本NodeJS需要语法

我有一个关于NodeJS for basic语法的基本语法的问题.

在这个存储库中,

https://github.com/alduro/generator-flux-webapp/blob/master/app/templates/src/app.js

它在第10行使用此代码:

var {Router} = require('director');

然后在第40行:

var router = new Router(routes).configure({html5history: true}).init();

这有效.

但是,如果我改变var {Router} = require('director');var Router = require('director');.

它会抛出异常, TypeError: Router is not a constructor.

它不再起作用了.


所以我的问题是{variable}是什么意思?

感谢您的时间.

javascript node.js

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