小编Gle*_*ift的帖子

如何用Traceur在ES6类中实现私有方法

我现在使用Traceur Compiler来获得ES6功能.

我想从ES5实现这些东西:

function Animal() {
    var self = this,
        sayHi;

    sayHi  = function() {
        self.hi();
    };

    this.hi = function() {/* ... */}
}
Run Code Online (Sandbox Code Playgroud)

目前traceur不支持privatepublic关键字(来自和谐).ES6类语法不允许在类体中使用简单var(或let)语句.

我找到的唯一方法是在类声明之前模拟私有.就像是:

var sayHi = function() {
    // ... do stuff
};

class Animal {
...
Run Code Online (Sandbox Code Playgroud)

没有什么比通过预期的更好,this没有apply-ing或bind-ing它每次都不能将正确的方法传递给私有方法.

那么,是否有可能在ES6类中使用与traceur编译器兼容的私有数据?

javascript class ecmascript-5 ecmascript-6 traceur

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

将整数转换为字符串Jinja

我有一个整数

{% set curYear = 2013 %}
Run Code Online (Sandbox Code Playgroud)

{% if %}语句中我必须将它与一些字符串进行比较.我不能curYear在开头设置字符串,因为我必须在循环中减少它.

我怎么转换它?

python jinja2 nunjucks

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

如何获得几个immutable.js列表的联合

所以,我有List a:

let a = Immutable.List([1])
Run Code Online (Sandbox Code Playgroud)

和清单b:

let b = Immutable.List([2, 3])
Run Code Online (Sandbox Code Playgroud)

我想union === List([1, 2, 3])从他们那里得到List .

我试着它们合并在一起:

let union = a.merge(b); // List([2, 3])
Run Code Online (Sandbox Code Playgroud)

看起来merge方法操作索引,而不是值,所以覆盖第一项的List a第一项List b.所以,我的问题是什么是获得多个列表联合的最简单方法(理想情况下不会迭代它们和其他额外的操作).

javascript list immutability node.js immutable.js

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

如何在Ramda.map中访问迭代索引

我曾经写过类似的东西

_.map(items, (item, index) => {});
Run Code Online (Sandbox Code Playgroud)

与lodash.通常我不需要,index但有时它是有用的.

我现在正在迁移到Ramda:

R.map((item, index) => {}, items);
Run Code Online (Sandbox Code Playgroud)

indexundefined.当然,我可以index在上限范围内创建变量,并且每次在map体内增加它,但从FP的角度来看,Ramda代表它是有点错误的.那么是否有任何构建迭代索引的方法?

javascript mapping lodash ramda.js

30
推荐指数
1
解决办法
7281
查看次数

使用猫鼬创建独特的自动增量字段

给出一个架构:

var EventSchema = new Schema({
    id: {
        // ...
    },
    name: {
        type: String
    },
});
Run Code Online (Sandbox Code Playgroud)

我想做出id独特的自动增量.我尝试实现mongodb实现,但是有理解如何在mongoose中正确执行它的问题.

我的问题是:在不使用任何插件等的情况下,在mongoose中实现自动增量字段的正确方法什么?

database auto-increment mongoose mongodb node.js

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

如何导入ES6模块中的部分对象

反应文档中,我发现了这种导入PureRenderMixin的方法

var PureRenderMixin = require('react/addons').addons.PureRenderMixin;
Run Code Online (Sandbox Code Playgroud)

如何以ES6风格重写.我唯一能做的就是:

import addons from "react/addons";
let PureRenderMixin = addons.addons.PureRenderMixin;
Run Code Online (Sandbox Code Playgroud)

我希望有更好的方法.

javascript module commonjs browserify ecmascript-6

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

在Rust中将字符串切片转换为int

注意此问题中的代码与1.0之前的Rust版本有关,但Rust 1.0的答案已更新.

我将字符串转换为整数时遇到问题.

fn main() {
    let input_text = io::stdin()
        .read_line()
        .ok()
        .expect("failed to read line");

    let input: Option<int> = from_str(input_text.as_slice());

    println!("{}", input);
}
Run Code Online (Sandbox Code Playgroud)

我在控制台上输入一个数字(例如42)并打印我的程序None.

文档说这是一个正常的情况,当字符串格式不正确,但我的错误是什么42

string integer type-conversion rust

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

有什么方法可以在lodash中使用immutable.js吗?

我在我的flux应用程序中使用了immutable.js.它非常有用,可以提升性能.但实际上让我感到难过的是我不能将lodash与它一起使用.Lodash提供了很棒的API,有很多有用的功能,所以我想也许有办法让它们在一起为我工作?

javascript immutability lodash reactjs immutable.js

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

将秘书URL参数广播到试剂组件的正确方法是什么

我正在重新构建默认模板之上构建应用程序.

我有以下秘书路线:

(defroute "/users/:id" []
  (re-frame/dispatch [:set-active-panel :user-panel])
Run Code Online (Sandbox Code Playgroud)

我想id从我的试剂组件中的URL 访问参数.我发现实现它的唯一方法就是设置它db.就像是:

(defroute "/users/:id" [id]
  (re-frame/dispatch [:set-user-id id])
  (re-frame/dispatch [:set-active-panel :user-panel])
Run Code Online (Sandbox Code Playgroud)

这肯定会污染我的数据库,这种方法对我来说似乎很奇怪,因为我曾经在反应中写这样的东西(使用react-router):

<Route path="/user/:id" component={MyComponent}>
// object with params automatically attached as props to MyComponent
Run Code Online (Sandbox Code Playgroud)

那么将秘书URL参数广播到试剂组件的正确方法是什么?

UPD:在评论中有一个链接到github讨论这个问题.Ones指的是将URL params设置为db作为正确的方法.无论如何,我真的不喜欢它.它会导致更多的复杂性(设置params,订阅它们,取消设置).而且我不喜欢将URL params视为app状态.有什么黑客或其他什么?

javascript clojure clojurescript reagent re-frame

6
推荐指数
1
解决办法
765
查看次数

如何覆盖Babel的预设插件选项

我正在通过以下.babelrc 使用babel-preset-react-app

{
  "presets": ["react-app"],
  "plugins": [
    "transform-es2015-modules-commonjs",
    "transform-async-generator-functions"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我需要覆盖babel-plugin-transform-runtime选项。我尝试通过以下方式安装插件并将其添加到.babelrc中:

{
  "presets": ["react-app"],
  "plugins": [
    ["babel-plugin-transform-runtime", {
      "helpers": false,
      "polyfill": false,
      "regenerator": false
    }],
    "transform-es2015-modules-commonjs",
    "transform-async-generator-functions"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但这对我不起作用。

有什么办法可以完成而无需复制整个预设并将其粘贴到.babelrc中?

javascript webpack babeljs create-react-app babel-plugin

6
推荐指数
1
解决办法
192
查看次数