使用Django模板引擎我可以在使用命名参数设置自定义上下文时包含另一个部分模板,如下所示:
{% include "list.html" with articles=articles_list1 only %}
{% include "list.html" with articles=articles_list2 only %}
Run Code Online (Sandbox Code Playgroud)
您可能正在假设,articles_list1并且articles_list2是两个不同的列表,但我可以重用list.html将使用该articles变量的相同模板.
我正在尝试使用Jinja2实现相同的功能,但我看不出推荐的方式,因为with关键字不受支持.
这是我的Github存储库:https://github.com/n1k0/casperjs
有一个gh-pages分支来保存项目文档,基本上是项目网站:https://github.com/n1k0/casperjs/tree/gh-pages
该分支机构在http://n1k0.github.com/casperjs/ - hurray上设置文档站点.
与此同时,我已经通过该casperjs.org域名获取此网站,因此我按照CNAME文档中的建议放置了一个文件:https://github.com/n1k0/casperjs/blob/gh-pages/CNAME - in他们的例子,该操作应该从www.example.com和charlie.github.com创建重定向到example.com ...
虽然该网站现在指向http://casperjs.org/,但没有301重定向从http://n1k0.github.com/casperjs/(旧网站网址)到新域名.
知道如何设置这样的重定向,如果可能的话?这是一个错误吗?如果是,我应该在哪里开一个问题?
我正在尝试使用XMLHttpRequest(使用最近的Webkit)下载二进制文件,并使用这个简单的函数对其内容进行base64编码:
function getBinary(file){
var xhr = new XMLHttpRequest();
xhr.open("GET", file, false);
xhr.overrideMimeType("text/plain; charset=x-user-defined");
xhr.send(null);
return xhr.responseText;
}
function base64encode(binary) {
return btoa(unescape(encodeURIComponent(binary)));
}
var binary = getBinary('http://some.tld/sample.pdf');
var base64encoded = base64encode(binary);
Run Code Online (Sandbox Code Playgroud)
作为旁注,上面的所有内容都是标准的Javascript内容,包括btoa()和encodeURIComponent():https://developer.mozilla.org/en/DOM/window.btoa
这非常顺利,我甚至可以使用Javascript解码base64内容:
function base64decode(base64) {
return decodeURIComponent(escape(atob(base64)));
}
var decodedBinary = base64decode(base64encoded);
decodedBinary === binary // true
Run Code Online (Sandbox Code Playgroud)
现在,我想使用Python解码base64编码的内容,它使用一些JSON字符串来获取base64encoded字符串值.天真这就是我的所作所为:
import urllib
import base64
# ... retrieving of base64 encoded string through JSON
base64 = "77+9UE5HDQ……………oaCgA="
source_contents = urllib.unquote(base64.b64decode(base64))
destination_file …Run Code Online (Sandbox Code Playgroud) 我正在尝试将React组件方法存根用于测试目的:
var Comp = React.createClass({
displayName: "Comp",
plop: function() {
console.log("plop");
},
render: function() {
this.plop();
return React.DOM.div(null, "foo");
}
});
var stub = sinon.stub(Comp.type.prototype, "plop");
React.addons.TestUtils.renderIntoDocument(Comp());
sinon.assert.called(stub); // throws
Run Code Online (Sandbox Code Playgroud)
这令人遗憾地继续将"plop"打印到控制台上......并且断言失败了.
注意:直接存在spec对象方法是有效的,但是你必须分别导出组件构造函数和规范,这样它们在测试中都可用...而且,你甚至需要在创建组件类之前存根规范; 不太方便:
var CompSpec = {
displayName: "Comp",
plop: function() {
console.log("plop");
},
render: function() {
this.plop();
return React.DOM.div("foo");
}
};
var stub = sinon.stub(CompSpec, "plop");
var Comp = React.createClass(CompSpec);
React.addons.TestUtils.renderIntoDocument(Comp());
// plop() is properly stubbed, so you can
sinon.assert.called(stub); // pass
Run Code Online (Sandbox Code Playgroud)
您能想到另一种轻松存根React组件方法的策略吗?
我正在使用Google JavaScript API在网络应用中获取谷歌联系人,我想要检索他们的图片.
我正在做这样的事情(大大简化):
var token; // let's admit this is available already
function getPhotoUrl(entry, cb) {
var link = entry.link.filter(function(link) {
return link.type.indexOf("image") === 0;
}).shift();
if (!link)
return cb(null);
var request = new XMLHttpRequest();
request.open("GET", link.href + "?v=3.0&access_token=" + token, true);
request.responseType = "blob";
request.onload = cb;
request.send();
}
function onContactsLoad(responseText) {
var data = JSON.parse(responseText);
(data.feed.entry || []).forEach(function(entry) {
getPhotoUrl(e, function(a, b, c) {
console.log("pic", a, b, c);
});
});
}
Run Code Online (Sandbox Code Playgroud)
但是我在Chrome和Firefox中都遇到了这个错误:
跨源请求封锁:同源策略不允许读取远程资源在https://www.google.com/m8/feeds/photos/media/<user_email?>/<some_contact_id> V = …
oauth gdata-api google-data-api google-shared-contacts google-oauth