小编jev*_*lio的帖子

承诺的JavaScript命名约定?

我觉得拥有一个承诺的 JavaScript变量的命名约定会很有用.我一般不喜欢或提倡超出编程语言标准的命名约定,但是在编程风格中,promises作为函数参数传递,通常难以一目了然地知道变量是持有承诺还是"真实的东西".

我个人使用promiseOfFoopFoo,但我觉得前者有点冗长,而后者给我倒叙从匈牙利.

有一个常用的惯例吗?

javascript naming-conventions promise deferred

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

在Regex中重叠匹配

我似乎无法找到这个问题的答案,我想知道是否存在.简化示例:

考虑一个字符串"nnnn",其中我想找到"nn"的所有匹配 - 但也是那些彼此重叠的匹配.因此正则表达式将提供以下3个匹配:

  1. nn nn
  2. ñ NN ñ
  3. nn nn

我意识到这并不是正则表达式的意思,但是对字符串进行操作并手动解析它似乎是一个非常多的代码,考虑到实际上匹配必须使用模式而不是文字字符串来完成.

c# regex overlap

34
推荐指数
2
解决办法
9469
查看次数

迭代未注册的加载项(.xla)

我需要帮助

  • 弄清楚如何使用菜单路径迭代尚未在Excel中注册的当前打开的Excel加载项文件(.xla)Tools > Add-ins.
  • 更具体地说,我对任何未出现在加载项对话框中的工作簿感兴趣,但有ThisWorkbook.IsAddin = True.

证明问题:

尝试按如下方式遍历工作簿不会使工作簿具有.AddIn = True:

Dim book As Excel.Workbook

For Each book In Application.Workbooks
    Debug.Print book.Name
Next book
Run Code Online (Sandbox Code Playgroud)

通过加载项循环不会获得未注册的加载项:

Dim addin As Excel.AddIn

For Each addin In Application.AddIns
    Debug.Print addin.Name
Next addin
Run Code Online (Sandbox Code Playgroud)

循环通过VBProjects集合可以正常工作,但前提是用户在宏安全设置中具有对Visual Basic项目的特别可信访问权限 - 这很少:

Dim vbproj As Object

For Each vbproj In Application.VBE.VBProjects
    Debug.Print vbproj.Filename
Next vbproj
Run Code Online (Sandbox Code Playgroud)

但是,如果已知工作簿的名称,则无论是否为加载项,都可以直接引用工作簿:

Dim book As Excel.Workbook
Set book = Application.Workbooks("add-in.xla")
Run Code Online (Sandbox Code Playgroud)

但是,如果名称未知,那么如何获取对此工作簿的引用,并且不能依赖用户的宏安全设置?

excel vba add-in excel-vba excel-addins

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

Backbone/RequireJS嵌套列表中的循环依赖

我在Backbone中使用RequireJS设置了一个嵌套的类别结构.

在此结构中,类别集合包含类别模型,单个类别模型可以包含类别集合.

不幸的是,这似乎导致RequireJS中可怕的循环依赖问题.我已经阅读了关于RequireJS的文档(http://requirejs.org/docs/api.html#circular)但是我发现'a'和'b'的解释令人困惑.

这是我的代码,导致问题:

define([

    "jquery",
    "underscore",
    "backbone",
    "collections/categories"

    ], function( $, _, Backbone, CategoriesCollection ) {

    var Category = Backbone.Model.extend({

        defaults: {
            title: "Untitled"
        },

        parse: function(data) {
            this.children = new CategoriesCollection( data.children, {parse: true} );
            return _.omit( data, "children" );
        }

    });

    return Category;

});
Run Code Online (Sandbox Code Playgroud)

...

define([

    "jquery",
    "underscore",
    "backbone",
    "models/category"

    ], function( $, _, Backbone, CategoryModel ) {

    var Categories = Backbone.Collection.extend({
        model: CategoryModel
    });

    return Categories;

});
Run Code Online (Sandbox Code Playgroud)

我想知道以前经历过这个的人是否可以帮助引导我朝着正确的方向前进.

在此先感谢您的帮助,

javascript jquery circular-dependency requirejs backbone.js

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

Chrome 开发者工具中的自定义 JavaScript 错误格式

我希望 Chrome Dev Tools 以Error与本机浏览器错误相同的用户友好格式记录我的自定义错误对象(扩展)。

目前如下代码:

 console.log(new CustomError('boom'));
 console.log(new Error('boom'));
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

在此处输入图片说明

相反,我希望我的自定义错误类型与省略号 ( ...) 堆栈跟踪一起显示,并且在展开时可以方便地单击文件路径。

我当前的错误实现是MDN 自定义错误类型文档中建议的扩展方法,尽管我也尝试过这个这个Stack Overflow 的答案。

带有附加captureStackTrace支持的 MDN 实现是:

function CustomError(message) {
  this.message = message;
  if (Error.captureStackTrace) {
    Error.captureStackTrace(this, this.constructor)
  } else {
    this.stack = new Error().stack;
  }
}

 Object.setPrototypeOf(CustomError, Error);
 CustomError.prototype = Object.create(Error.prototype);
 CustomError.prototype.name = "CustomError";
 CustomError.prototype.message = "";
 CustomError.prototype.constructor = CustomError;
Run Code Online (Sandbox Code Playgroud)

有没有办法让 Chrome Dev Tools 将我的自定义错误视为标准错误?

javascript google-chrome-devtools

5
推荐指数
0
解决办法
295
查看次数

任何会返回预设JSON字符串的模拟工具?

我想要一个可以模拟RESTFul服务器的工具,它应该返回我为特定URL映射的预设JSON数据.

例如:如果我调用 http://ccccc.com/api/users ,那么模型工具应该以JSON格式返回用户(我已经预设).

当我使用backbone或jquery创建客户端代码以使用ajax调用返回模型时,这可能很有用.

对这种模型工具的任何建议?

注意:创建一个servlet,它读取传入的GET URL并从文件中读取预设的JSON并将其作为JSON字符串输出.但我正在寻找一种能够为我做这件事的工具.

json backbone.js

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