我试图在我的项目中运行一些ES6代码,但我收到意外的令牌导出错误.
export class MyClass {
constructor() {
console.log("es6");
}
}
Run Code Online (Sandbox Code Playgroud) 我有两个json对象obj1和obj2,我想合并它们并克里特一个json对象.结果json应该具有来自obj2的所有值和来自obj1的值,这些值在obj2中不存在.
Question:
var obj1 = {
"name":"manu",
"age":23,
"occupation":"SE"
}
var obj2 = {
"name":"manu",
"age":23,
"country":"india"
}
Expected:
var result = {
"name":"manu",
"age":23,
"occupation":"SE",
"country":"india"
}
Run Code Online (Sandbox Code Playgroud) 如何向Angular 4应用程序添加多个独立的HTTP拦截器?
我尝试通过providers
使用多个拦截器扩展数组来添加它们.但是只有最后一个实际执行,Interceptor1
才会被忽略.
@NgModule({
declarations: [ /* ... */ ],
imports: [ /* ... */ HttpModule ],
providers: [
{
provide: Http,
useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) =>
new Interceptor1(xhrBackend, requestOptions),
deps: [XHRBackend, RequestOptions],
},
{
provide: Http,
useFactory: (xhrBackend: XHRBackend, requestOptions: RequestOptions) =>
new Interceptor2(xhrBackend, requestOptions),
deps: [XHRBackend, RequestOptions]
},
],
bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
我显然可以将它们组合成一个单独的Interceptor
类,这应该可行.但是,我想避免这种情况,因为这些拦截器具有完全不同的目的(一个用于错误处理,一个用于显示加载指示符).
那么如何添加多个拦截器呢?
我正在使用symfony2框架,我想使用PHP的DateTime类(PHP版本是5.3).
声明在这里:
namespace SDCU\GeneralBundle\Entity;
class Country
{
public function __construct(){
$this->insertedAt = new DateTime();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在执行此构造函数时,我收到一条错误消息,指出没有"SDCU\GeneralBundle\Entity\DateTime"类.我一直在寻找DateTime的命名空间,但没有成功......任何想法?
打字稿中是否有任何运算符使用Elvis Operator
了angular2的similer,我的意思是说让我必须从对象获取密钥,如下所示:
this.myForm.name.first_name
Run Code Online (Sandbox Code Playgroud)
如果first_name不存在,那么它会抛出错误first_name of undefined
,
是的,我可以使用这样Ternary operator
的打字稿来解决这个错误
this.myForm.name ? this.myForm.name.first_name : ''
Run Code Online (Sandbox Code Playgroud)
但有时钥匙太长了,
所以Elvis Operator
在打字稿中有任何类似angular2的操作符,这样我就可以这样使用了
this.myForm?.name?.first_name
Run Code Online (Sandbox Code Playgroud) 我有这个javascript对象:
var arr1 = [{id:'124',name:'qqq'},
{id:'589',name:'www'},
{id:'45',name:'eee'},
{id:'567',name:'rrr'}]
var arr2 = [{id:'124',name:'ttt'},
{id:'45',name:'yyy'}]
Run Code Online (Sandbox Code Playgroud)
我需要用arr2中具有相同id的项替换arr1中的对象.
所以这是我想得到的结果:
var arr1 = [{id:'124',name:'ttt'},
{id:'589',name:'www'},
{id:'45',name:'yyy'},
{id:'567',name:'rrr'}]
Run Code Online (Sandbox Code Playgroud)
如何使用javascript实现它?
我有:
var keys = [ "height", "width" ];
var values = [ "12px", "24px" ];
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这个对象:
{ height: "12px", width: "24px" }
Run Code Online (Sandbox Code Playgroud)
在Python中,有一个简单的习语dict(zip(keys,values))
.在jQuery或普通的Javascript中是否有类似的东西,或者我必须做很长的事情吗?
我正在研究传入数据的实时可视化.我使用D3进行可视化,并基于此示例开始:http://bl.ocks.org/mbostock/3883195
这是我目前正在处理的版本:
var margin = {top: 20, right: 20, bottom: 30, left: 50},
width = 500 - margin.left - margin.right,
height = 300 - margin.top - margin.bottom;
var x = d3.time.scale().range([0, width]);
var y = d3.scale.linear().range([height, 0]);
var xAxis = d3.svg.axis().scale(x).orient("bottom");
var yAxis = d3.svg.axis().scale(y).orient("left");
var area = d3.svg.area()
.x(function(d) { return x(d.x); })
.y0(height)
.y1(function(d) { return y(d.y); });
var svg = d3.select("div#chart").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g") …
Run Code Online (Sandbox Code Playgroud) 我有一个具有3级嵌套的JavaScript对象.我很难从第3级嵌套中获取值.
我已经对SO进行了一些研究并得到了基本的循环,但我似乎无法超越第一级.
这是我的代码
var customers = {
"cluster": [{
"id": "cluster1.1",
"color": "blue",
"flights": "784",
"profit": "524125",
"clv": "2364",
"segment": [{
"id": "segment1.1",
"color": "green",
"flights": "82",
"profit": "22150",
"clv": "1564",
"node": [{
"id": "node1.1",
"color": "orange",
"xpos": "1",
"ypos": "1"
}, {
"id": "node1.2",
"color": "orange",
"xpos": "1",
"ypos": "2"
}, {
"id": "node1.3",
"color": "orange",
"xpos": "1",
"ypos": "3"
}, {
"id": "node1.4",
"color": "orange",
"xpos": "1",
"ypos": "4"
}]
}, {
"id": "segment1.2",
"color": "red",
"flights": "2", …
Run Code Online (Sandbox Code Playgroud) 使用Vue路由器时,/foo/:val
您需要添加一个观察器以响应参数更改.这导致在URL中具有参数的所有视图中有些恼人的重复代码.
这可能类似于以下示例:
export default {
// [...]
created() {
doSomething.call(this);
},
watch: {
'$route' () {
doSomething.call(this);
}
},
}
function doSomething() {
// e.g. request API, assign view properties, ...
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以克服这个问题?可以将处理程序created
和$route
更改结合起来吗?是否可以禁用组件的重用,以便根本不需要观察者?我正在使用Vue 2,但这对Vue 1来说也许很有趣.
javascript ×7
angular ×2
babel ×1
charts ×1
d3.js ×1
datetime ×1
ecmascript-6 ×1
http ×1
idioms ×1
interceptor ×1
lodash ×1
namespaces ×1
php ×1
typescript ×1
vue-router ×1
vue.js ×1
vuejs2 ×1
webpack ×1