我现在使用Traceur Compiler来获得ES6功能.
我想从ES5实现这些东西:
function Animal() {
var self = this,
sayHi;
sayHi = function() {
self.hi();
};
this.hi = function() {/* ... */}
}
Run Code Online (Sandbox Code Playgroud)
目前traceur不支持private和public关键字(来自和谐).ES6类语法不允许在类体中使用简单var(或let)语句.
我找到的唯一方法是在类声明之前模拟私有.就像是:
var sayHi = function() {
// ... do stuff
};
class Animal {
...
Run Code Online (Sandbox Code Playgroud)
没有什么比通过预期的更好,this没有apply-ing或bind-ing它每次都不能将正确的方法传递给私有方法.
那么,是否有可能在ES6类中使用与traceur编译器兼容的私有数据?
我有一个整数
{% set curYear = 2013 %}
Run Code Online (Sandbox Code Playgroud)
在{% if %}语句中我必须将它与一些字符串进行比较.我不能curYear在开头设置字符串,因为我必须在循环中减少它.
我怎么转换它?
所以,我有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.所以,我的问题是什么是获得多个列表联合的最简单方法(理想情况下不会迭代它们和其他额外的操作).
我曾经写过类似的东西
_.map(items, (item, index) => {});
Run Code Online (Sandbox Code Playgroud)
与lodash.通常我不需要,index但有时它是有用的.
我现在正在迁移到Ramda:
R.map((item, index) => {}, items);
Run Code Online (Sandbox Code Playgroud)
index是undefined.当然,我可以index在上限范围内创建变量,并且每次在map体内增加它,但从FP的角度来看,Ramda代表它是有点错误的.那么是否有任何构建迭代索引的方法?
给出一个架构:
var EventSchema = new Schema({
id: {
// ...
},
name: {
type: String
},
});
Run Code Online (Sandbox Code Playgroud)
我想做出id独特的自动增量.我尝试实现mongodb实现,但是有理解如何在mongoose中正确执行它的问题.
我的问题是:在不使用任何插件等的情况下,在mongoose中实现自动增量字段的正确方法是什么?
在反应文档中,我发现了这种导入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)
我希望有更好的方法.
注意此问题中的代码与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?
我在我的flux应用程序中使用了immutable.js.它非常有用,可以提升性能.但实际上让我感到难过的是我不能将lodash与它一起使用.Lodash提供了很棒的API,有很多有用的功能,所以我想也许有办法让它们在一起为我工作?
我正在重新构建默认模板之上构建应用程序.
我有以下秘书路线:
(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状态.有什么黑客或其他什么?
我正在通过以下.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 ×7
ecmascript-6 ×2
immutability ×2
immutable.js ×2
lodash ×2
node.js ×2
babel-plugin ×1
babeljs ×1
browserify ×1
class ×1
clojure ×1
commonjs ×1
database ×1
ecmascript-5 ×1
integer ×1
jinja2 ×1
list ×1
mapping ×1
module ×1
mongodb ×1
mongoose ×1
nunjucks ×1
python ×1
ramda.js ×1
re-frame ×1
reactjs ×1
reagent ×1
rust ×1
string ×1
traceur ×1
webpack ×1