小编use*_*999的帖子

调用名称存储在变量中的函数

我有以下脚本:

(function () {
    var Module = (function () {
        var fctToCall = function () {
            alert('Foo');
        };
        return {
            fctToCall: fctToCall
        };
    })();
    var Module2 = (function () {
        var init = function () {
            var str = 'fctToCall';
            Module.str(); // here
        };
        return {
            init: init
        };
    })();
})();
Run Code Online (Sandbox Code Playgroud)

所以我想fctToCall通过它的名字来调用这个方法 - 我该怎么做?到目前为止,我知道3种方法:

  • 通过将函数附加到窗口对象,但它不会是本地和闭包,我将无法访问其他局部变量
  • eval,就我看来最好的选择,但它仍然是eval,所以我不想使用它
  • 这,但它是另一种架构,我不想改变它

我怎么解决这个问题?

javascript

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

将int8放入字节数组

我有以下字节数组:

buf := make([]byte, 1)
var value int8
value = 45
buf[0] = value // cannot use type int8 as type []byte in assignment
Run Code Online (Sandbox Code Playgroud)

当我想将一个char值放入字节数组时,我得到了错误cannot use type int8 as type []byte in assignment.怎么了?我该怎么做呢?

go

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

LoadXML 文件太大

我正在尝试从包含大约 60MB 数据的 URL 加载 xml 内容。当我使用简单的 XML 内置库执行此操作时,我不断收到以下错误:

PHP Warning:  DOMDocument::loadXML(): internal error: Huge input lookup in Entity, line: 845125
Run Code Online (Sandbox Code Playgroud)

并且脚本正在停止。怎么了?我该如何处理?

我使用的示例网址:

http://foo.com/feed.xml
Run Code Online (Sandbox Code Playgroud)

php xml simplexml

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

导入与在节点中使用Babel的要求

我想在一个文件中导入一个类:

"use strict";
import models from "../model";
class Foo {
    bar() {
    }
}
export default new Foo();
Run Code Online (Sandbox Code Playgroud)

它在我使用import时有效,例如:

import Foo from "./foo";
console.log(Foo.bar); // [Function bar]
Run Code Online (Sandbox Code Playgroud)

问题是,使用require执行它会给我未定义:

var Foo = require("./foo");
console.log(Foo.bar); // undefined
Run Code Online (Sandbox Code Playgroud)

而Foo变量似乎是一个空类.为什么会这样?这是怎么回事?

javascript node.js ecmascript-6 babeljs

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

在 redux saga 中监听 store 的变化

我正在尝试创建一个 redux saga 来监听状态中一个变量的变化。当它确实发生变化时,我想发送一些其他动作。这可能吗?

这就是我想要做的:

yield takeLatest(fooAction, fetchAll);

function* fetchAll() {
   const part = yield select(getPartOfState);
   if (part.flag) {
      yield call(listenToChange);
   }
}

function* listenToChange() {
   const anotherPart = yield select(getAnotherPartOfState);
   if (anotherPart === true) { // this is what I want to wait for
      // do something
   }
}
Run Code Online (Sandbox Code Playgroud)

所以我基本上想等待anotherPart改变,因为最初它会是假的,并且只在循环中执行一次(即使listenToChange被执行多次。这可能吗?

reactjs redux redux-saga

4
推荐指数
2
解决办法
4615
查看次数

将数组转换为csv

我有一个不同值的数组 - 有没有办法将其转换为csv字符串并将其输出fmt.Print到stdout,而无需将csv写入某个文件?

据我所知,如果我创建一个csv编写器,我必须传递io文件作为参数,有没有办法输出它?

go

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

切片作为参数传递的切片指针

我有以下代码:

func main() {
    var buf []byte{1, 2, 3, 4, 5}
    buf = buf[2:]
    fmt.Println(buf)
    panic(1)
}
Run Code Online (Sandbox Code Playgroud)

但是我想将指向buf字节切片的指针传递给另一个函数,并将其切片到那里,所以类似于:

func main() {
    var buf []byte{1, 2, 3, 4, 5}
    sliceArr(&buf, 2)
    fmt.Println(buf)
    panic(1)
}

func sliceArr(buf *[]byte, i int) {
    *buf = *buf[i:]
}
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,我不能在函数的参数中使用type []byte作为类型,并且我不能切片类型.怎么了?默认情况下,切片是否通过引用传递?我尝试在没有指针的情况下执行此操作,但它不起作用 - 正在复制数组.我怎样才能做到这一点?*[]bytesliceArr()*[]byte

pointers go slice

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

在反应中使用元素的aria属性

我有以下渲染方法:

render: function () {
  return (
    React.createElement('div', {className: 'modal', id: 'errorModal', tabIndex: '-1', role: 'dialog', ariaHidden: 'true', dataBackdrop: 'false', style: {marginTop: '30px'}}, 'text')
  )
}
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

react.js:20541警告:未知的道具ariaHidden,dataBackdrop在标签.从元素中删除这些道具.有关详细信息,请参阅构造函数中的div(由Constructor创建)

我该怎么解决这个问题?文档说我可以使用这些属性.小写也不起作用.我不想使用jsx.

javascript reactjs

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

IIFE中对象和返回对象之间的区别

this在对象的函数内使用关键字可以正常工作,但是在没有的情况下引用其他函数this.当我在对象之前放出这些函数时,两种方式都有效.为什么会这样?

var Obj = {
  func1: function () {
    console.log(this.func2()); // works
    console.log(func2()); // doesn't work
  },
  func2: function () {
    return 5;
  }
};
Obj.func1();
Run Code Online (Sandbox Code Playgroud)

但在IIFE中做同样的事情:

var Obj = (function () {
  function func1() {
    console.log(this.func2()); // works
    console.log(func2()); // works
  }
  function func2() {
    return 5;
  }
  return {
    func1: func1,
    func2: func2
  };
})();
Obj.func1();
Run Code Online (Sandbox Code Playgroud)

javascript

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

始终在开发模式下显示工具栏

我希望始终在开发模式下显示工具栏,而不仅仅是在出现错误时显示。我有以下方法:

/**
 * @Route("/", name="homepage")
 */
public function indexAction(Request $request) : JsonResponse
{
    return new JsonResponse($param);
}
Run Code Online (Sandbox Code Playgroud)

我运行它来测试工具栏。这当然会产生错误,因为$param工具栏会出现。但是当我使用时return new JsonResponse('aaa');一切正常并且工具栏不出现。

如何使工具栏应用程序没有错误?

配置:

framework:
    templating:
        engines: ['twig']
    router:
        resource: "%kernel.root_dir%/config/dev/routing.yml"
        strict_requirements: true
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: true
Run Code Online (Sandbox Code Playgroud)

应用程序内核:

if (in_array($this->getEnvironment(), array('dev', 'test'), true)) {
            $bundles[] = new Symfony\Bundle\TwigBundle\TwigBundle();
}
Run Code Online (Sandbox Code Playgroud)

php symfony

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