当用户将浏览器窗口滚动到某个点以下时,我正在切换#page div的类.
到目前为止我所做的工作正常:
<div ng-app="myApp" scroll id="page">
<header></header>
<section></section>
</div>
app = angular.module('myApp', []);
app.directive("scroll", function ($window) {
return function(scope, element, attrs) {
angular.element($window).bind("scroll", function() {
if (this.pageYOffset >= 100) {
element.addClass('min');
console.log('Scrolled below header.');
} else {
element.removeClass('min');
console.log('Header is in view.');
}
});
};
});
Run Code Online (Sandbox Code Playgroud)
(当他们在标题下方滚动窗口时,100px,该类被切换)
虽然,如果我错了,请纠正我,我觉得这不是用Angular做这件事的正确方法.
相反,我认为执行此操作的最佳方法是使用ng-class并在范围中存储布尔值.像这样的东西:
<div ng-app="myApp" scroll id="page" ng-class="{min: boolChangeClass}">
<header></header>
<section></section>
</div>
app = angular.module('myApp', []);
app.directive("scroll", function ($window) {
return function(scope, element, attrs) {
angular.element($window).bind("scroll", function() {
if (this.pageYOffset >= 100) …
Run Code Online (Sandbox Code Playgroud) 请有人向我展示一个使用libxml解析一些HTML的简单示例.
#import <libxml2/libxml/HTMLparser.h>
NSString *html = @"<ul>"
"<li><input type=\"image\" name=\"input1\" value=\"string1value\" /></li>"
"<li><input type=\"image\" name=\"input2\" value=\"string2value\" /></li>"
"</ul>"
"<span class=\"spantext\"><b>Hello World 1</b></span>"
"<span class=\"spantext\"><b>Hello World 2</b></span>";
Run Code Online (Sandbox Code Playgroud)
1)假设我想解析name = input2的输入值.
应该输出"string2value".
2)假设我想解析class = spantext的每个span标记的内部内容.
应输出:"Hello World 1"和"Hello World 2".
我试图在集合视图单元格上设置零填充,我在视图控制器上设置了"Min Spacing":
然而,细胞之间仍然存在差距:
我也喜欢它,以便细胞根据框架的宽度很好地包裹,例如每个单元格宽50px,所以如果有六个单元格并且我将框架宽度设置为150px,它将显示两行三细胞.
然而,如果我通过执行以下操作将帧宽度设置为150:
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect frame = self.collectionView.frame;
frame.size.width = 150;
self.collectionView.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)
它看起来像在上面的屏幕截图(太宽).
如果我把它设置为像10这样可笑的小东西,它会在某种程度上包裹起来:
UICollectionViewCell设置为50 x 50:
我还尝试以编程方式设置单元格的大小,还删除了UIEdgeInset:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0, 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
我已禁用自动布局,只是有任何干扰.关于如何移除衬垫并根据框架宽度/高度进行包装的任何建议?
我的模型中有一个JSON类型,它来自Postgres,迁移看起来像:
create_table :people do |t|
t.string :name
t.json :links
end
Run Code Online (Sandbox Code Playgroud)
此JSON对象的结构如下所示:
{
"facebook" : "u12345",
"google" : "u54321"
}
Run Code Online (Sandbox Code Playgroud)
在Active Record中,我试图显示此对象,以便可以编辑它们,或者可以添加新的键/值:
form do |f|
f.inputs "Person Details" do
f.input :name
f.input :links <- Error here because active admin doesn't recognise JSON type
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
当我从活动管理员编辑人员条目时,我得到"无法找到json的输入类".
我喜欢它,以便json结构中的每个键成为输入的标签,例如:
__________
Facebook | u12345 |
??????????
__________
Google | u54321 |
??????????
__________
Twitter | |
??????????
Run Code Online (Sandbox Code Playgroud)
在我的活动管理表单块中,我想指定3/4预定义的键,比如facebook,google,twitter,如果来自模型的JSON结构中不存在其中一个键,它将显示为空输入,允许管理员为该键添加值,并将其保存回数据库.如果密钥确实存在于JSON结构中,则将使用其值填充输入,以便可以对其进行编辑.
所以我的问题是如何从主动管理员简单地管理/编辑JSON结构,并以上述格式表示数据?
为了简单起见,假设这些是我的集合模式:
var MessageDeliverySchema = new Schema({
from : { type : String },
to : { type : String },
status : { type : String }
});
var Messages = mongoose.model('messages',
new Schema({
id : ObjectId,
user : { type:String },
'sent-messages' : [MessageDeliverySchema]
}));
Run Code Online (Sandbox Code Playgroud)
因此,集合Messages中的每个文档可能具有MessageDeliverySchema定义的4/5个已发送消息.
我想要做的是有一系列已发送消息,因此每次发送收据时我都会更新消息并附加另一封已发送消息.
我尝试过的:
var delivered = {
from: 'foo',
to: 'bar',
status: 'delivered'
};
Message.update({_id: '5064aae4154cb34d14000001' },
{$pushAll: { 'sent-messages' : delivered }} , {upsert:true}, function(err, …
Run Code Online (Sandbox Code Playgroud) var tr = document.createElement('tr');
tr.setAttribute("onclick",p.onrowclick+"("+row.id+")");
Run Code Online (Sandbox Code Playgroud)
嗨,以上在Firefox中对我来说很好.我在IE中找不到正确的解决方法语法.
我正在使用IE8.
嗨,当我提交表单时,会调用以下Javascript.它首先从文本区域中分割出一堆url,然后:
1)为每个网址添加一个表格行,并在最后一列("状态"列)中显示"未启动".
2)再次循环遍历每个url,首先关闭它进行ajax调用以检查状态(status.php),该状态将返回0-100的百分比
.3)在同一循环中,它通过ajax启动实际进程(process.php),当进程完成时(记住连续状态更新),它将在状态列中显示"已完成"并退出auto_refresh.
4)然后它应该转到下一个'each'并为下一个url做同样的事情.
function formSubmit(){
var lines = $('#urls').val().split('\n');
$.each(lines, function(key, value) {
$('#dlTable tr:last').after('<tr><td>'+value+'</td><td>Not Started</td></tr>');
});
$.each(lines, function(key, value) {
var auto_refresh = setInterval( function () {
$.ajax({
url: 'status.php',
success: function(data) {
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>"+data+"</td>");
}
});
}, 1000);
$.ajax({
url: 'process.php?id='+value,
success: function(msg) {
clearInterval(auto_refresh);
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>completed rip</td>");
}
});
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的语言/模板ID表:
语言| 模板
en,t1
en,t1
au,t2
ge,t3
en,t1
ge,t2
ge,t3
模板始终为t1,t2或t3.总共有3种语言:en,au,ge.
表中有更多信息,我只是展示与此问题相关的内容,我将使用数据进行绘图,因此需要以这种格式返回:
en,t1,3
en,t2,0
en,t3,0
au,t1,0
au,t2,1
au,t3,0
ge,t1,0
ge,t2,1
ge,t3,2
然而,这会计算每种语言中出现的许多模板.但是,如果表中没有该特定语言的模板ID,我遇到的问题是返回零计数.
我认为它需要在模板ID上进行某种左连接子选择以确保为每种语言返回3个模板ID?
十进制-805306368的二进制文件是:
11111111111111111111111111111111 11010000000000000000000000000000
但是,在Javascript中我得到以下内容:
var str = parseInt(-805306368).toString(2);
document.write(str);
Run Code Online (Sandbox Code Playgroud)
-110000000000000000000000000000
任何人都可以解释如何从这个十进制解析64位二进制字符串?
我在图像中有一个简单的网格,我试图确定网格大小,例如6x6,12x12等.使用Python和cv2.
我正在用上面的3x3网格测试它,我计划通过在图像中检测它们来计算有多少垂直/水平线来确定网格大小:
import cv2
import numpy as np
im = cv2.imread('photo2.JPG')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
imgSplit = cv2.split(im)
flag,b = cv2.threshold(imgSplit[2],0,255,cv2.THRESH_OTSU)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(1,1))
cv2.erode(b,element)
edges = cv2.Canny(b,150,200,3,5)
while(True):
img = im.copy()
lines = cv2.HoughLinesP(edges,1,np.pi/2,2, minLineLength = 620, maxLineGap = 100)[0]
for x1,y1,x2,y2 in lines:
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),1)
cv2.imshow('houghlines',img)
if k == 27:
break
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我的代码检测到这些行,如下所示,但是我的图像中每行都检测到多行:
(图像中的每一行都有两条1px绿线)
我不能简单地将行数除以2,因为(取决于网格大小)有时只绘制一行.
如何更准确地检测并绘制原始图像中检测到的每一行的单行?
我调整了阈值设置,将图像缩小为黑白,但仍然有多行.我认为这是因为canny边缘检测?
javascript ×3
objective-c ×2
activeadmin ×1
ajax ×1
angularjs ×1
asynchronous ×1
binary ×1
decimal ×1
each ×1
html-parsing ×1
jquery ×1
json ×1
left-join ×1
libxml2 ×1
mongodb ×1
mongoose ×1
mysql ×1
numpy ×1
onclick ×1
opencv ×1
postgresql ×1
python ×1
setattribute ×1
subquery ×1
xcode ×1