小编com*_*ted的帖子

需要使用Node.js压缩整个目录

我需要使用Node.js压缩整个目录.我目前正在使用node-zip,每次进程运行时都会生成一个无效的ZIP文件(从这个Github问题可以看出).

是否有另一个更好的Node.js选项可以让我压缩目录?

编辑:我最终使用归档

writeZip = function(dir,name) {
var zip = new JSZip(),
    code = zip.folder(dir),
    output = zip.generate(),
    filename = ['jsd-',name,'.zip'].join('');

fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};
Run Code Online (Sandbox Code Playgroud)

参数的样本值:

dir = /tmp/jsd-<randomstring>/
name = <randomstring>
Run Code Online (Sandbox Code Playgroud)

更新:对于那些询问我使用的实现的人,这里是我的下载器的链接:

zip node.js

82
推荐指数
6
解决办法
8万
查看次数

Ember.js:transitionTo路由,然后是动态段

我有一个设置了帐户的路由器和帐户/:account_id选项.当用户登陆我的应用程序的索引页面时,我将它们转换为帐户路线.

Social.Router.map(function() {
    this.resource('accounts', function(){
        this.resource('account', { path: ':account_id'});
    });
});

Social.IndexRoute = Ember.Route.extend({
    redirect: function() {
        this.transitionTo('accounts');
    }
});
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据一些标准将它们转换为指定的:account_id路由.目前我只想获得阵列中的第一个帐户并使用它.但在将来,它可能是一种将他们转换到他们正在查看的最后一个帐户的方法.像这样的东西:

Social.IndexRoute = Ember.Route.extend({
    redirect: function() {
        this.transitionTo('accounts/:account_id');
    }
});
Run Code Online (Sandbox Code Playgroud)

文档提供"详细信息"但不提供示例,仅提供以下内容:

transitionTo(名称,型号)

过渡到另一条路线.可选择为相关路线提供模型.该模型将使用serialize钩子序列化到URL中.

我尝试过以下方法:

this.transitionTo('accounts/4');
Uncaught Error: assertion failed: The route accounts/4 was not found

this.transitionTo('accounts', Social.Account.find(1));
Uncaught More objects were passed than dynamic segments
Run Code Online (Sandbox Code Playgroud)

ember.js

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

Ember.js:查看按键事件的监听

在我的应用程序中,我有一个包含一些设置信息的面板.点击按钮即可打开/关闭此面板,但我也希望能够通过敲击esc键盘来关闭它.

我的View代码如下所示:

Social.MainPanelView = Ember.View.extend({
    elementId: 'panel-account-settings',
    classNames: ['panel', 'closed'],
    keypress: function(e){
        console.log(e);
        console.log('keypress');
    },
    close: function(){
        this.$().prepareTransition().addClass("closed");
    }
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过keyup和keydown,但没有任何反应.我怀疑这是因为这不是一个"输入"类型的视图,而只是一个标准视图.那么如何从关键事件触发View上的方法呢?

我应该澄清,这不属于这一特定要素的路线.我正在打开独立面板,如本视频中所示:

http://screencast.com/t/tDlyMud7Yb7e

更新1

这是我创建的一个快速小提琴,用于说明我遇到的问题.我可以很容易地触发click事件,但我正在寻找一个页面范围的keyup事件,它将检测被按下的esc键并触发特定View上的方法:

javascript-events ember.js

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

用于移动开发的最佳性能JavaScript MVC框架

当我说移动开发时我的意思是在浏览器中,并编译为PhoneGap.

我正在尝试比较性能数字JS MVC框架.我已经google了这个,但是当你说Mobile,JS和框架时,你得到的是Sencha,jQuery Mobile,Titanium等的链接.

我特指的是MVC框架,例如:

Ember
Backbone
Spine
Knockout
JavaScript MVC
Batman
Blossom
etc.
Run Code Online (Sandbox Code Playgroud)

我很想看到包含移动浏览器中每个功能指标的链接,以及PhoneGap.

javascript model-view-controller

13
推荐指数
2
解决办法
9198
查看次数

我可以在Python/Flask中使用外部方法作为路径修饰器吗?

我的主应用程序文件目前是一系列方法定义,每个定义都附加到一个路径.我的应用程序(main,admin,api)有3个不同的部分.我正在尝试将方法拆分为外部文件以便更好地维护,但我喜欢Flask在我的应用程序的URL中使用路径装饰器的简单性.

我的其中一条路线目前看起来像这样:

# index.py
@application.route('/api/galleries')
def get_galleries():
    galleries = {
        "galleries": # get gallery objects here
    }
    return json.dumps(galleries)
Run Code Online (Sandbox Code Playgroud)

但我想将get_galleries方法解压缩到包含我的API方法的文件中:

import api
@application.route('/api/galleries')
api.get_galleries():
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做时,我得到一个错误.这是可能的,如果是这样,我该怎么做?

python flask

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

您在Ember.js应用程序中使用哪个UI工具包?

我最近刚开始使用Ember.js,我喜欢这个功能.我想知道您可能使用哪个UI工具包来绑定应用程序的设计方面.

ember.js

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

Ember.js:将模型传递到视图中

我有一个控制器,其中包含有关用户帐户(图标,名称,提供商等)的数据.在每个循环的输出中,我有一个视图,它将根据通过该特定模型传入的提供者动态构建CSS类.

<script type="text/x-handlebars" data-template-name="accountItem">
{{#each account in controller}}
    {{#view App.AccountView}}
        <h4>{{account.name}}</h3>
        <img {{bindAttr src="account.icon"}} />
        <i {{bindAttr class="account.provider"}}></i>
    {{/view}}
{{/each}}
</script>

App.AccountView = Ember.View.extend({
    tagName: 'a',
    classNames: ['avatar-image'],
    providerClass: function(el) {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)

我的问题是双重的.

  1. 如何将"帐户"或当前迭代的项目传递到视图中?
  2. 传递之后,你如何引用它?

我确信这是经常发生的事情,但我似乎无法找到任何例子.有人可以提供一些意见吗?

handlebars.js ember.js

8
推荐指数
1
解决办法
6965
查看次数

使用Wagtail作为API层

我公司正在评估Wagtail作为我们网站部分的CMS.目前我们正在运行Python 2.7和Django 1.5(不要问......).我们能够在一个单独的实例上运行Wagtail,它可以包含最新版本的Python/Django,但我们无法在主应用程序中运行Wagtail.

我们正在考虑将Wagtail严格用作CMS,然后将来自我们主网站的请求代理到Wagtail实例并返回生成的标记.

是否有人做过这样的事情,能否提供对我们可能采取的过程的见解?Wagtail是否提供开箱即用的功能?我们可能会遇到哪些潜在的陷阱,或者我们应该注意哪些事情?

这可能意味着我们不是将"整个页面"存储在Wagtail中,而是将其视为存储不同内容片段的一种方式:一段文本将加载到我们的主页或动态搜索结果页面的外部包装器中.

python django wagtail

8
推荐指数
1
解决办法
1310
查看次数

运行NodeWebkit应用程序失败:无效的package.json字段'main'是必需的错误

我已经使用我的NW应用程序几周了,没有问题.我开始将其他同事带到我的repo进行测试,我决定编写一个安装脚本,而不是强迫他们手动安装依赖项.今天,在运行安装脚本进行测试后,我尝试运行我的应用程序并收到以下错误:

Invalid package.json
Field 'main' is required.
Run Code Online (Sandbox Code Playgroud)

我没有更改我的应用程序或我的package.json文件.我无法弄清楚可能导致问题的原因,但NW的GitHub仓库似乎确实存在一个未解决的问题:

https://github.com/rogerwang/node-webkit/issues/1503

我想知道是否还有其他人正在经历这个问题,以及您可能采取了哪些措施来解决这个问题?

这是关于我的应用程序的一些相关信息.

node-webkit: v0.8.5
node.js: v0.10.22
Chromium: 30.0.1599.66
bower: 1.3.1
yeoman: 1.1.2
Run Code Online (Sandbox Code Playgroud)

我试图获得nodewebkit本身的版本,但该命令nodewebkit不提供版本标志.

安装shell脚本

npm install bower -g
npm install yeoman -g
npm install generator-node-webkit -g
npm install nodewebkit -g
npm install grunt-cli -g
bower install
npm install
Run Code Online (Sandbox Code Playgroud)

我的目录树(来自root):

??? Gruntfile.js
??? app
?   ??? css
?   ?   ??? main.css
?   ??? index.html
?   ??? js
?   ?   ??? application.js
?   ??? package.json
??? bower.json
??? package.json
Run Code Online (Sandbox Code Playgroud)

我最内层的package.json文件,在我的主app目录中:

{ …
Run Code Online (Sandbox Code Playgroud)

node.js node-webkit

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

Python相当于Javascript的jQuery或Node的cheerio?

我正在寻找一个与jQuery或Cheerio具有类似API和用法的库.

我的用例是:解析包含javascript/css文件引用的任何脚本或链接标记的HTML文件.

python api jquery node.js cheerio

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