小编Tri*_*sie的帖子

我不懂Jinja2 Call Blocks

我理解这个概念,但我不懂语法.

我将使用他们网站上使用的示例

{% macro render_dialog(title, class='dialog') -%}
<div class="{{ class }}">
    <h2>{{ title }}</h2>
    <div class="contents">
        {{ caller() }}
    </div>
</div>
{%- endmacro %}

{% call render_dialog('Hello World') %}
   This is a simple dialog rendered by using a macro and
    a call block.
{% endcall %}
Run Code Online (Sandbox Code Playgroud)

什么是输出?

子问题(因为我对如何工作很困惑):你是否允许每个宏只有1个来电?

python jinja2

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

双闭包如何打破循环引用?

我正在阅读有关循环引用如何导致IE中的内存泄漏的问题,但我对在闭包内使用闭包来打破循环引用的示例感到非常困惑:

function addHandler() {
    var clickHandler = function() {
        this.style.backgroundColor = 'red';
    };
    (function() {
        var el = document.getElementById('el');
        el.onclick = clickHandler;
    })();
}
Run Code Online (Sandbox Code Playgroud)

我的头部全都被引用了什么,哪些是闭包,哪些是范围对象.有人可以比MDN更明确地分解它吗?谢谢.

javascript object

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

如何在react-router转换期间更新redux存储?

我遇到了一个关于如何在发生react-router转换时更新存储的问题.

在我当前的实现(下面)中,在渲染下一页之前更新存储.当当前页面根据下一页的数据获得商店更新时会出现问题:(1)当前页面无意义地呈现(它订阅了商店更新),因为更新的商店用于下一页(2)渲染时的当前页面中断,因为更新的存储仅包含下一页的数据.

superagent
  .get(opts.path)
  .set('Accept', 'application/json')
  .end((err, res) => {
    let pageData = res && res.body || {};
    store.dispatch(setPageStore(pageData));
    render(store);
  });
Run Code Online (Sandbox Code Playgroud)

反过来也有问题,在更新商店之前渲染下一页.现在的问题是渲染的下一个分页符,因为在更新存储之前,下一页所需的数据不存在.

我要么滥用库,要么我的架构不完整,或其他什么.救命!

其余的示例代码:

应用

const React = require('react');
const Router = require('react-router');
const {createStore} = require('redux');
const {update} = React.addons;
const routes = require('./routes'); // all the routes
let store = {};
let initialLoad = true;

Router.run(routes, Router.HistoryLocation, (Handler, opts) => {
  if(initialLoad) {
    initialLoad = false;

    // hydrate
    const initialState = JSON.parse(document.getElementById('initial-state').text);
    store = createStore(appReducer, initialState);
    render(store);

  } …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router redux

9
推荐指数
2
解决办法
1174
查看次数

babel-node无法在node_modules中需要jsx文件

我默认babel-node忽略node_modules了,所以我用三种不同的方式来覆盖它,都失败了:

  1. babel-node app.js.babelrc:

    {
      "presets": ["es2015", "react"],
      "only": [
        "app",
        "node_modules/react-components"
      ]
    }
    
    Run Code Online (Sandbox Code Playgroud)

    结果:SyntaxError: Unexpected token <对于所需的jsx节点模块

  2. babel-node app.js.babelrc:

    {
      "presets": ["es2015", "react"],
      "ignore": "node_modules\/(?!react-components)"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    结果:SyntaxError: Unexpected token <对于require jsx节点模块

  3. babel-node ./bin/www --ignore '/node_modules/(?!react-components).babelrc:

    {
      "presets": ["es2015", "react"]
    }
    
    Run Code Online (Sandbox Code Playgroud)

    结果:

    [project]/node_modules/babel-preset-react/node_modules/babel-plugin-transform-react-jsx/lib/index.js:12
        var visitor = require("babel-helper-builder-react-jsx")({
                                                               ^
    
    TypeError: object is not a function
    
    Run Code Online (Sandbox Code Playgroud)

使用带有ignore选项的register hook正常工作.

node app.js在开头使用此代码运行app.js

require('babel-core/register')({ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js reactjs babeljs

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

在模板中显示Handlebars.js上下文

是否有一个变量传递到每个handlebar.js模板中,其中包含模板可访问的所有上下文内容?

例如,我正在创建一个模板,但我不知道模板可以访问的所有上下文内容.我希望能够输入模板{{ debug }}和handlebars.js将所有上下文内容吐出到HTML中

handlebars.js

6
推荐指数
2
解决办法
5840
查看次数

当方法被传递到另一个函数时,如何访问实例方法中的实例属性?

我知道在下面的代码中,undefined如果我点击按钮,它会打印出来,因为在按钮this.field的上下文中而不是Container. 我的问题是如何访问this.fieldContainer时候this.func被传递到另一个函数,这比一个不同的上下文范围Container

function Container(){
    this.field = 'field';

    $('button').click(this.func);
}

Container.prototype.func = function(){
   console.log(this.field);
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以做到这一点,但有更好的方法吗?因为我宁愿在构造函数之外定义方法,所以我不会把它弄乱。

function Container(){
    var thisObj = this;
    this.field = 'field';

    $('button').click(function(){ console.log(thisObj.field) });
}
Run Code Online (Sandbox Code Playgroud)

javascript oop jquery

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

来自Design Pattern的Bruce Eckel的代码片段:我对它是如何工作感到困惑

我一直在阅读布鲁斯·埃克尔在Python中思考.目前,我正在阅读模式概念章节.在本章中,Eckel展示了python中Singletons的不同实现.但是我对Alex Martelli的Singleton代码(利用继承,而不是私有的嵌套类)有一个不清楚的理解.

这是我对目前代码的理解:

  • 所有Singleton对象都是Borg的子类
  • _shared_state最初是一个空字典
  • _shared_state是一个全局变量; 使用Borg的任何对象都具有相同的_shared_state

到目前为止我的困惑:

  • 这是什么行的目的:self.__dict__ = self._shared_state; 或者字典的目的
  • Singletons的所有对象最终是如何具有相同的val,即使它们都是该类的不同实例.
  • 总的来说,我不知道博格是如何运作的

许多人提前感谢!

- 三

*更新:每个Singleton对象创建后_shared_state中存储的内容是什么?

#: Alex' Martelli's Singleton in Python
class Borg:
  _shared_state = {}
  def __init__(self):
    self.__dict__ = self._shared_state

class Singleton(Borg):
  def __init__(self, arg):
    Borg.__init__(self)
    self.val = arg
  def __str__(self): return self.val

x = Singleton('sausage')
print …
Run Code Online (Sandbox Code Playgroud)

python

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

C++父类方法调用

我正在创建一个从STL库继承队列的新类.该类的唯一补充是向量.此向量将具有相同的队列大小,并将存储一些整数值,这些值将对应于队列中的每个对象.

现在,我想覆盖pop()和push(),但我只是想为父类的方法添加更多功能.

恩.当在队列对象上调用pop()时,我还想从向量中弹出一个对象.当在队列对象上调用push()时,我还想在向量中插入一个新对象.

我怎么做???

#include <iostream>
#include <iostream>
#include <queue>
#include <vector>

using namespace std;

template <typename type>
class CPU_Q : public queue<type>
{

  public:
    vector<int>  CPU_TIME;

    void increaseTime()
    {
      for(int ndx = 0; ndx < CPU_TIME.size(); ndx++)
      {
        CPU_TIME[ndx]++;
      }
    }

  void push(type insertMe)
  {
    //This is what I want to do
    super::push(); // or queue::push(); maybe?
    CPU_TIME.push_back(0);
  }
  void pop()
  {
    //Something very similar to push()
  }
}
Run Code Online (Sandbox Code Playgroud)

许多人提前感谢

- 三

c++ inheritance

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

使用 JS 在 Firefox 中为 HTML5 视频禁用键盘事件

我正在使用 javascript 为 HTML5 视频创建键盘快捷键。它适用于 Chrome 和 safari,但在 Firefox 中不太适用,因为它具有本机键盘控件。例如,我使用前/后箭头键使用用户定义的跳过步骤在视频中滚动;FF 已经具有相同的功能,但具有预定义的跳过步骤。

非常感谢提前。

html javascript keyboard video firefox

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