我试图让一个javascript对象运行一个延迟方法,当它的.done()调用同一个对象中的一个函数时.我有问题,因为"this"成为延迟对象而不是调用它的对象.
PageObject.prototype.successFunction = function() {
console.log(arguments);
return console.log(this.name + " Success function called");
};
PageObject.prototype.loadPage = function(url) {
return $.when($.mobile.loadPage("pages/" + url))
.done(this.successFunction);
};
var pg = new PageObject();
pg.loadPage("test.html");
Run Code Online (Sandbox Code Playgroud)
如何将"this"发送到successFunction?这个PageObject也将被其他人扩展,因此在运行successFunction时知道"this"将非常方便.
这似乎很简单,可能有一个简单的答案.我正在研究.apply(),但我不确定它是否有帮助.关于堆栈溢出的这篇文章有点帮助,但是它把它放入.done()函数的那一刻就打破了.
我是Python的新手,正在探索允许用户构建自定义图像的用途.我们的想法是客户端会选择一些选项,然后在服务器上创建图像然后下载(或用于服务器端的其他内容).
图像由许多图像组成,其中大多数是小图标类型的图像,这些图像是不规则形状并且具有透明度.所有图层都是.png
文件.
我尝试使用枕头,但似乎图像需要与整个图像大小相同才能正确使用顶层的透明度.
这是我到目前为止所尝试的:
from PIL import Image
background = Image.open("Background.png")
foreground = Image.open("Trim.png")
fire = Image.open("Type_Fire_Large.png")
background = Image.alpha_composite(background, foreground)
background.paste(fire, (150, 150))
background.show()
Run Code Online (Sandbox Code Playgroud)
图像如下所示:
Background.png
是阴影的"噪音",Trim.png
是灰色的对角线.最好的部分:Trim.png
中心透明,能够Background.png
在中间显示.但它的尺寸也与图像相同.
问题是Fire
; 请注意黑色边框(和奇数紫红色点)是如何的.文档指出叠加图像需要具有相同的大小.但似乎有人会想要在另一个图像上放置一个透明度较小的小图标并将它们组合成一个图像.
我不喜欢任何特定的图书馆,我对想法和替代方案持开放态度.我唯一想做的就是保持简单,所以创建一个完整的游戏引擎或类似的东西可能会产生太多.
仅当我尝试将两个图表放在同一页面上时才会出现此错误.如果它们是页面上唯一的图表,则两个图表都能完美运行.我添加第二个只有第一个加载的那一分钟,我得到"请求ID为0的缺少查询"错误.
这是我的图表的js文件:
function drawChart(title, queryPage, divToFill) {
var dataTab = null;
var query = new google.visualization.Query(queryPage);
var strSQL = "SELECT *";
query.setQuery(strSQL);
query.send(processInitalCall);
function processInitalCall(res) {
if(res.isError()) {
alert(res.getDetailedMessage());
} else {
dataTab = res.getDataTable();
// Draw chart with my DataTab
drawChart(dataTab);
}
}
function drawChart(dataTable) {
// Draw the chart
var options = {};
options['title'] = title;
options['backgroundColor'] = "#8D662F";
var colors = Array();
var x = 0;
if(currentCampaignId >= 0) {
while(x < dataTab.getNumberOfColumns() - 2) {
colors[x] …
Run Code Online (Sandbox Code Playgroud) 随着jQuery Mobile 1.3的到来,添加了.navigate()函数.我听说这是改变页面的推荐方法,似乎它们解决了在页面之间传输数据的问题.
问题是,由于它已经简化,我如何访问changePage提供的其他选项?我真的想使用.navigate()的{data}部分,但我还想设置一些我通常使用changePage的选项(例如转换,方向等).
我目前有一个"路由器",它可以监听所有导航事件,然后将接收到的任何数据传递到下一页(也可以设置其他简单的逻辑,比如设置视图控制器).
在[,选项]中是否有一些隐藏的属性,我可以设置方向和过渡等简单的东西?
所以对于上面的图像,我试图让“绿色”框环绕动态文本。注意蓝色和黄色文本框是如何flex: 'row'
配置的,蓝色文本框在 a 处,黄色文本框flex: 2
是flex: 1
。
一切正常,直到文本对于父容器来说太大。
我希望绿色容器根据需要生长以适应弯曲的内在孩子。这可能与本机反应吗?
这是它在网络意义上的样子的图像:
我试过将绿色框设置为有一个,flex: 1
但它太大了,因为它填满了整个屏幕。设置height
是可能的,但我不知道最大内部组件的大小(至少没有一些hacky)。我什至试过minHeight
。
有没有人尝试过这样的事情?我是否需要自己动态获取内部元素的高度?
更新 - 这是一些代码:
<View style={{ flex: 1, flexDirection: 'column', marginTop: 70, backgroundColor: '#f9e2ff' }}>
<View
style={{
minHeight: 40,
borderWidth: 1,
borderStyle: 'solid',
padding: 5,
margin: 5,
backgroundColor: '#58c09e'
}}
>
<View style={{ flex: 1, flexDirection: 'row' }}>
<View style={{ flex: 2, backgroundColor: '#eeff96' }}>
<Text>
Hello this is a long bit of text that will fill …
Run Code Online (Sandbox Code Playgroud) 我正在尝试调试我的应用程序,但当我使用--debug-brk标志时,有些东西阻止了应用实际启动.
这是我的输出正常:
/usr/local/bin/node app.js
Express server listening on port 3000
Connected to database HackRegDb
Run Code Online (Sandbox Code Playgroud)
这是当我运行--debug-brk时发生的事情(在代码中的一个点处有一个断点,在初始启动时不会被击中)
/usr/local/bin/node --debug-brk=59763 app.js
debugger listening on port 59763
Run Code Online (Sandbox Code Playgroud)
请参阅,没有"服务器侦听"部分.代码显然是相同的,并且在吐出之前没有断点.
作为参考,这是我的app.js文件:
var express = require('express')
, routes = require('./routes')
, members = require('./routes/members')
, teams = require('./routes/teams')
, http = require('http')
, path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' …
Run Code Online (Sandbox Code Playgroud) 我正在尝试本地化KnockoutJS验证插件,但我需要能够在运行中切换语言.这个插件有一个问题,但它已经超过2年了(并且仍然开放).
我只是想做的是在加载所有内容后切换验证消息的语言.这是一个例子(可以在小提琴上看到:http://jsfiddle.net/Kikketer/S6j2q/)
<input data-bind='value: phone' />
<div data-bind="text: phone"></div>
<button type='button' data-bind="click: v">Validate</button>
<button type='button' data-bind='click: switchLanguage'>Switch Language</button>
Run Code Online (Sandbox Code Playgroud)
使用以下JS:
ko.validation.configure({
registerExtenders: true
});
// If I localize right away, things work
ko.validation.localize({required: '**Required'});
var InterviewTwo = function() {
// Standard "required" validator
this.phone = ko.observable().extend({required: true});
// Group all of the validators
this.errors = ko.validation.group(this);
// Validation function
this.v = function() {
this.errors.showAllMessages();
};
// Switching languages after or before the validation …
Run Code Online (Sandbox Code Playgroud) 我觉得我错过了CoffeeScript和二维数组的东西.我只是试图制作一个空间网格(想想跳棋).在使用arrays.map函数进行一些搜索和发现之后,我想出了这个:
@spaces = [0...20].map (x)->
[0...20].map (y) ->
new Elements.Space()
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好,我有一个很好的二维数组,每个都创建了我的Space对象.但是现在我想将创建的空间构造函数发送到x,y位置.因为我是两层深,所以x
当我输入map函数时,我丢失了变量y
.
理想情况下,我想做的事情如下:
@spaces = [0...20].map (x)->
[0...20].map (y) ->
new Elements.Space(x, y)
Run Code Online (Sandbox Code Playgroud)
或者对我来说更自然的东西:
for row in rows
for column in row
@spaces[row][column] = new Elements.Space(row, column)
Run Code Online (Sandbox Code Playgroud)
我真的乐于接受任何更好的方式.我知道如何在标准JavaScript中实现它,但我真的想学习如何在CoffeeScript中完成它.
javascript ×2
coffeescript ×1
flexbox ×1
jquery ×1
knockout.js ×1
node.js ×1
pillow ×1
python ×1
python-2.7 ×1
react-native ×1