我有一组显示特定数字的图块,具体取决于用户选择的选项.我现在想通过显示的任何数字来实现排序.
下面的代码显示了我是如何实现它的(通过在父卡范围内获取/设置值).现在,因为orderBy函数接受一个字符串,我试图在名为curOptionValue的卡片范围中设置一个变量并按此排序,但它似乎不起作用.
那么问题就变成了,如何创建自定义排序功能?
<div ng-controller="aggViewport" >
<div class="btn-group" >
<button ng-click="setOption(opt.name)" ng-repeat="opt in optList" class="btn active">{{opt.name}}</button>
</div>
<div id="container" iso-grid width="500px" height="500px">
<div ng-repeat="card in cards" class="item {{card.class}}" ng-controller="aggCardController">
<table width="100%">
<tr>
<td align="center">
<h4>{{card.name}}</h4>
</td>
</tr>
<tr>
<td align="center"><h2>{{getOption()}}</h2></td>
</tr>
</table>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和控制器:
module.controller('aggViewport',['$scope','$location',function($scope,$location) {
$scope.cards = [
{name: card1, values: {opt1: 9, opt2: 10}},
{name: card1, values: {opt1: 9, opt2: 10}}
];
$scope.option = "opt1";
$scope.setOption = function(val){
$scope.option = val;
}
}]);
module.controller('aggCardController',['$scope',function($scope){
$scope.getOption = function(){ …Run Code Online (Sandbox Code Playgroud) 我知道svg有一个内置功能来做圆角,但我需要在四个角中的两个角上做圆角.
我知道我可以在彼此之上绘制多个矩形来模仿它,但这看起来有点俗气.有什么方法可以使用剪辑或任何d3.js方法吗?
现在我有一个水平条形图,其形状如下:
rects.enter().append("rect")
.attr("x",function(d,i) { return x(0); })
.attr("width",function(d) { return x(d.value) - x(0); })
.attr("height",y.rangeBand())
.attr("y",function(d) { return y(d.name); })
Run Code Online (Sandbox Code Playgroud)
我试图在rect的右侧产生圆角,但不知道该怎么做.
我正在尝试使用角度加载div来为同位素提供布局.出于某种原因,我不能使用ng-repeat来创建div.当我做类似的事情,它工作正常:
[agg.html]
<div class="mygrid" iso-grid>
<div class="item">myitem</div>
</div>
Run Code Online (Sandbox Code Playgroud)
[controlers.js]
module.directive('isoGrid', function () {
return function (scope, element, attrs) {
element.isotope({
itemSelector: '.item'
});
};
});
module.controller('aggViewport', ['$scope', '$location', function ($scope, $location) {
$scope.cards = [{
"ID": "myid",
"class": "cardListTile",
"badge": "1"
} {
"ID": "myid2",
"class": "cardListTile",
"badge": "2"
}]
}]);
Run Code Online (Sandbox Code Playgroud)
虽然上面的工作正常,但是当我尝试从角度使用ng-repeat时,div似乎变得不可见(它们在dom中,但我看不到它们).我试过调用同位素('reloadItems')和同位素('reLayout'),但它似乎没有帮助.
[agg.html]
<div class="mygrid" iso-grid ng-repeat="card in cards">
<div class="item">myitem</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用ng-repeat?
是否可以在javascript中向array()添加方法?(我知道原型,但我不想为每个数组添加一个方法,特别是一个).
我想这样做的原因是因为我有以下代码
function drawChart()
{
//...
return [list of important vars]
}
function updateChart(importantVars)
{
//...
}
var importantVars = drawChart();
updateChart(importantVars);
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
var chart = drawChart();<br>
chart.redraw();
Run Code Online (Sandbox Code Playgroud)
我希望有一种方法可以将方法附加到我正在返回的内容中drawChart().有办法吗?
我有一个区域图(应该代表一个时间序列).我想基于y值对图形着色,使得对于y> c它是一种颜色的区域,对于y <= c的区域,它是另一种颜色.这有可能在D3?
这是我生成单色图的代码:
var width = 700,
height = 400;
var vis = d3.select("#chart")
.append("svg")
.attr("width",width)
.attr("height",height);
var mpts = [{"x":0,"val":15}];
var n = 200;
for(var i=0;i<n;i++)
{
if(Math.random()>.5)
{
mpts = mpts.concat({"x":i+1,"val":mpts[i].val*(1.01)});
}
else
{
mpts = mpts.concat({"x":i+1,"val":mpts[i].val*(.99)});
}
}
var x = d3.scale.linear().domain([0,n]).range([10,10+width]);
var y = d3.scale.linear().domain([10,20]).range([height-10,0]);
var area = d3.svg.area()
.interpolate("linear")
.x(function(d) { return x(d.x); })
.y1(function(d) { return y(d.val); })
.y0(function(d) { return y(0); });
vis.append("svg:path")
.attr("class", "area")
.attr("d",area(mpts))
.attr("fill","orange");
</script>
Run Code Online (Sandbox Code Playgroud)
是否有任何内置服务/指令/路由根据用户访问的浏览器/平台类型更改视图(或使用路由的页面)?我希望手机和平板电脑的视图与桌面用户不同.
想知道,有谁知道如何从埃德加自动获取数据?(免费或其他)
我已经考虑从雅虎/谷歌获取它,但他们整合信息(如不同的收入类别将分组为一个收入项目).我看过像Zacks这样的一些付费网站,但他们也在进行整合.
或者,有没有办法通过api或其他方式使用XBRL加载不同的语句?我不能说我完全理解XBRL是如何工作的,但它似乎是一个XML接口来访问报告的不同语句(由公司自己发布).
如何使用JQuery.getJSON()读取当前目录中的文件?
我正在尝试一些简单的事情(将我的data.json文件放在与我的html文件相同的目录中):
$.getJSON("./data.json")
Run Code Online (Sandbox Code Playgroud)
我收到错误:
XMLHttpRequest无法加载file:/// C:/Projects/test/data.json.Access-Control-Allow-Origin不允许使用null.
我尝试了各种路径组合,但它似乎不起作用......
编辑:我正在使用Chrome,但我想在所有浏览器中工作......
我有一个始终具有焦点的输入框.进入此输入框的命令始终是字母.如果用户按下一个数字,我希望它不会被添加到文本框中,而是用它来运行不同的命令(就像热键一样).
我看到这个实现的方式是通过查看keyup事件并删除不需要的字符.相反,有没有办法拦截键盘输入并检查插入前的值是什么?
我考虑过使用div创建自定义输入字段并拦截所有键盘命令.有没有办法让闪烁的插入符号看起来像一个输入框?
我正在尝试从sybase服务器读取表,处理行,并将结果输出到另一个表.(以下是我的代码)
代码检索表非常快,并且处理速度相同(在30秒内得到它发送的部分).但是当我运行执行批处理时,它会在那里停留20分钟(fyi,我有一个表,我正在测试8400行).
有没有更有效的方法来做到这一点?我可以接受如何收到或发送查询(我可以创建一个新表,更新表等) - 我只是不知道为什么这么慢(我确定数据<1 MB和我确定它不需要SQL服务器20分钟来解析8400行).有任何想法吗?
注意:这对我来说真的很糟糕的原因是我必须解析一个1.2 MM行的表(我正在使用的这个表是一个8400行的测试表)
Connection conn = DriverManager.getConnection(conString, user, pass);
String sql = "SELECT id,dateid,attr from user.fromtable";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
String sqlOut = "INSERT INTO user.mytabletest (id,attr,date,estEndtime) values (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sqlOut);
int i=1;
while(rs.next())
{
int date = rs.getInt("dateid");
String attr = rs.getString("attr");
String id = rs.getString("id");
Time tt = getTime(date,attr);
Timestamp ts = new Timestamp(tt.getTime());
ps.setString(1, id);
ps.setString(2, attr);
ps.setInt(3, date);
ps.setTimestamp(4, ts);
ps.addBatch();
if(i % 10000 == …Run Code Online (Sandbox Code Playgroud)