来自Node我曾经安装特定版本的供应商lib的环境到项目文件夹(node_modules),告诉从控制台npm安装该版本的lib,package.json甚至直接从控制台安装,如下所示:
$ npm install express@4.0.0
Run Code Online (Sandbox Code Playgroud)
然后我习惯在我的项目中导入该包的那个版本:
var express = require('express');
Run Code Online (Sandbox Code Playgroud)
现在,我想做同样的事情go.我怎样才能做到这一点?是否可以安装特定版本的软件包?如果是这样,使用集中式$GOPATH,如何导入一个版本而不是另一个版本?
我会做这样的事情:
$ go get github.com/wilk/uuid@0.0.1
$ go get github.com/wilk/uuid@0.0.2
Run Code Online (Sandbox Code Playgroud)
但是,在导入过程中如何才能有所作为呢?
我想做这样的事情:
myList = [10,20,30]
yourList = myList.append (40)
Run Code Online (Sandbox Code Playgroud)
不幸的是,list append不会返回修改后的列表.
那么,我如何允许append返回新列表?
我不明白这种行为:
var string = 'a,b,c,d,e:10.';
var array = string.split ('.');
Run Code Online (Sandbox Code Playgroud)
我期待这个:
console.log (array); // ['a,b,c,d,e:10']
console.log (array.length); // 1
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个:
console.log (array); // ['a,b,c,d,e:10', '']
console.log (array.length); // 2
Run Code Online (Sandbox Code Playgroud)
为什么返回两个元素而不是一个?怎么样split?
还有另一种方法吗?
我已经阅读了和宏的文档,但仍然无法弄清楚如何以及何时使用它们,也无法在互联网上的其他地方找到许多资源或示例. @async@sync
我的直接目标是找到一种方法来设置几个工作程序并行工作,然后等待它们全部完成后继续我的代码.这篇文章:等待在Julia的远程处理器上完成的任务包含一个成功的方法来实现这一点.我原以为应该可以使用@async和@sync宏,但是我最初的失败让我想知道我是否正确理解了如何以及何时使用这些宏.
parallel-processing macros synchronization asynchronous julia
我正在使用Jasmine和Karma来测试我在Angular上构建的应用程序.
我将测试一个加载用户数据的服务,我使用$ httpBackend来模拟响应.但是,当我运行测试时,我遇到了两个错误:
模块:
'use strict';
app.service ('UserService', ['$resource', '$q', 'GITHUB_API_URL', function ($resource, $q, GITHUB_API_URL) {
var userResource = $resource (GITHUB_API_URL + '/users/:user', {user: '@user'}) ,
userModel = {};
return {
data: function () {
return userModel;
} ,
populate: function (user) {
var deferred = $q.defer () ,
userRequest = userResource.get ({user: user});
$q
.when (userRequest.$promise)
.then (function (data) {
userModel = data;
deferred.resolve (data);
});
return deferred.promise; …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何在Ext.data.Store不保留旧引用的情况下克隆一个.
让我用一些代码更好地解释一下.这是源存储:
var source = Ext.create ('Ext.data.Store', {
fields: ['name', 'age'] ,
data: [
{name: 'foo', age: 20} ,
{name: 'boo', age: 30} ,
{name: 'too', age: 10} ,
{name: 'yoo', age: 80} ,
{name: 'zoo', age: 30}
]
});
Run Code Online (Sandbox Code Playgroud)
按照我想要做的一个例子:
var target = source;
target.removeAll ();
// Here I need to have target empty and source unchanged
// But in this case, source is empty as well
Run Code Online (Sandbox Code Playgroud)
现在,在上面的例子中,副本是通过引用完成的,而我需要按值来完成.所以我Ext.clone ()在文档中发现它似乎不适用于复杂的对象,例如Ext.data.Store:
var target = Ext.clone …Run Code Online (Sandbox Code Playgroud) 我正在尝试遵循本指南:https ://developers.google.com/gtagjs/reference/api#set
它表示您可以用来gtag('set', {key: value})将一组值添加到下一个gtag调用中。然而,这不起作用。
因此,这是我为了gtag在应用程序上可用而使用的设置:
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('set', 'anonymizeIp', true);
gtag('config', 'my_ga_tracking_id', {
send_page_view: false,
custom_map: {
dimension1: 'a_dimension'
}
});
Run Code Online (Sandbox Code Playgroud)
加载应用程序后,然后执行以下代码:
gtag('set', { a_dimension: 'test' });
gtag('event', 'an_event');
Run Code Online (Sandbox Code Playgroud)
我希望看到发送给 GA 的a_dimension活动附件an_event,但我找不到它。
我缺少什么?
我要用本地用户的配置来表示日期.遵循MDN描述:
toLocaleDateString方法在格式化日期中依赖于底层操作系统.它使用运行脚本的操作系统的格式约定将日期转换为字符串.例如,在美国,月份出现在日期(04/15/98)之前,而在德国,日期出现在月份之前(15.04.98).
我这样做:
var date = new Date ();
console.log (date.toLocaleDateString ());
Run Code Online (Sandbox Code Playgroud)
它打印出来Saturday, October 13, 2012但我期望的是Sabato, 13 Ottobre, 2012(这是意大利日期格式).现在,我的浏览器和我的系统的配置设置正确(意大利语和上面的格式日期),所以我不明白如何toLocaleDateString工作.
我做得对吗?
我想动态地创建getter/setter方法来检索私有属性.
这就是我做的.
首先,我上课了:
function winClass (posX, posY, w, h) {
var x = posX || 0;
var y = posY || 0;
var width = w || 0;
var height = h || 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我用getter/setter方法扩展了winClass,如下所示:
winClass.prototype.getX = function () {
return x;
}
winClass.prototype.setX = function (val) {
x = val;
}
Run Code Online (Sandbox Code Playgroud)
然后我测试了:
var win1 = new winClass (10, 10, 100, 100);
document.write (win1.getX ());
Run Code Online (Sandbox Code Playgroud)
但是当我尝试设置'getX'方法时出现以下错误:'x未定义'.这是有道理的,因为'x'不在winClass范围内,但因此我不知道如何为私有变量设置动态getter/setter方法.
有任何想法吗?
javascript private dynamic getter-setter prototype-programming
当您使用ExtJS(使用其MVC和Viewport)开发Web应用程序时,通常无法导航:页面中的每个项目(按钮,文本字段,textareas,...)都绑定到视图控制器的特定方法.因此,当您"浏览"应用程序时,原始URL始终相同且不会更改.
现在,以一个带有标题菜单栏的应用程序为例,其中包含以下按钮:
Home | Setup | Archive
Run Code Online (Sandbox Code Playgroud)
并且应用程序的原始URL采用以下内容:
http://www.mydomain.com/webapp
Run Code Online (Sandbox Code Playgroud)
此时,当有人单击"主页"或"设置"或"存档"菜单时,某个视图将显示在中心区域中,并且URL应该会更改
http://www.mydomain.com/webapp/[home|setup|archive]
Run Code Online (Sandbox Code Playgroud)
因此,如果单击"设置"菜单,则应在地址栏中显示以下URL:
http://www.mydomain.com/webapp/setup
Run Code Online (Sandbox Code Playgroud)
此外,如果我从另一个URL在地址栏中键入相同的URL,则应显示相同的页面.
但目前我的webapp仍然保留在显示请求视图的" http://www.mydomain.com/webapp "中.(例如,MyApp.view.Setup).
这就是重点:如何使用URL导航开发webapp(使用ExtJS,MVC和Viewport)?是否可以不将javascript/html代码嵌套到其他PHP/Ruby/Python/$ RANDOM_SERVER_LANGUAGE中?(我想通过服务器端拆分客户端)
这种方法的实现已经存在:它是ExtJS API文档.如果我是对的,那么没有提供所请求页面的服务器端应用程序或.htaccess.事实上,主目录中有一个名为"source"的文件夹,其中包含每个类的HTML文件.他们是怎么做到的?
提前致谢.威尔克
client-server extjs web-applications client-side restful-url
我正在尝试使用HTML5 websocket开发一个网络聊天(使用hybi-17协议),但我对字符解码有一些问题.这是我通过客户端发送的内容(用户代理:Firefox 7):
var socket = new MozWebSocket ('ws://localhost/server.php');
socket.onopen = function () {
alert ('Opened!');
}
Run Code Online (Sandbox Code Playgroud)
然后,我发送这些数据:
socket.send ('Hello');
socket.send ('World');
Run Code Online (Sandbox Code Playgroud)
这是服务器端代码:
$bytes = @socket_recv ($socket, $buffer, BUFSIZE, 0);
if (($bytes == 0) || ($bytes == 2)) {
this->disconnect ($socket);
}
else {
echo $buffer;
}
Run Code Online (Sandbox Code Playgroud)
虽然这是收到的数据回应:
??6S~g?Y (Hello)
???~????? (World)
Run Code Online (Sandbox Code Playgroud)
如您所见,套接字已打开,数据从客户端传输到服务器.服务器使用PHP5并使用普通的套接字函数来构建连接.
如何在人类可读的字符串中解码该不可读的字符串?
提前致谢.
我需要开发一个包裹在可浮动窗口中的网格:当显示窗口时我需要关注某一行,然后我要使用导航键向上或向下移动.现在,我理解如何聚焦指定的行(使用grid.getView().focusRow(index))但是,这样做,我无法在网格中向上或向下移动,就像网格失去焦点一样.
这是代码:
var storage = Ext.create ('Ext.data.Store', {
fields: ['id', 'name'] ,
data: [
{id:0,name:'foo'} ,
{id:1,name:'boo'} ,
{id:2,name:'koo'} ,
{id:3,name:'zoo'} ,
{id:4,name:'moo'} ,
{id:5,name:'too'} ,
{id:6,name:'goo'} ,
{id:7,name:'poo'} ,
{id:8,name:'loo'} ,
{id:9,name:'roo'} ,
{id:10,name:'hoo'}
]
});
Ext.create ('Ext.grid.Panel', {
title: 'My Grid' ,
width: 300 ,
height: 200 ,
store: storage ,
renderTo: Ext.getBody () ,
columns: [{
header: 'ID' ,
dataIndex: 'id'
} , {
header: 'Name' ,
dataIndex: 'name' ,
flex: 1
}] ,
listeners: {
afterlayout: …Run Code Online (Sandbox Code Playgroud) 我有一个可观察对象,定义如下:
Ext.define ('MyObject', {
mixins: {
observable: 'Ext.util.Observable'
} ,
constructor: function (cfg) {
this.initConfig (cfg);
this.mixins.observable.constructor.call (this, cfg);
...
}
});
Run Code Online (Sandbox Code Playgroud)
然后,我创建了这个对象的实例并附加了一些监听器:
var obj = Ext.create ('MyObject', {...});
obj.on ({
first: function () {...} ,
second: function () {...} ,
third: function () {...} ,
fourth: function () {...}
});
Run Code Online (Sandbox Code Playgroud)
最后,我要破坏'obj'实例,但此时我要保存以前附加的每个听众,因为我很生气,我需要创建另一个'MyObject'实例,具有相同的配置'obj',听众包括在内.
所以,问题是:如何保存可观察对象的每个侦听器?
非常感谢!
javascript ×6
extjs ×4
extjs4 ×2
angularjs ×1
append ×1
arrays ×1
asynchronous ×1
client-side ×1
date ×1
date-format ×1
dynamic ×1
focus ×1
go ×1
grid ×1
gridview ×1
html5 ×1
jasmine ×1
julia ×1
karma-runner ×1
list ×1
listeners ×1
locale ×1
macros ×1
model ×1
observable ×1
package ×1
php ×1
private ×1
python ×1
restful-url ×1
service ×1
split ×1
store ×1
string ×1
unit-testing ×1
websocket ×1