我想遍历一个JSON对象树,但找不到任何库.这似乎并不困难,但感觉就像重新发明轮子一样.
在XML中,有很多教程展示了如何使用DOM遍历XML树:(
为清楚起见,简化了名称和对象.基本概念保持不变.
我有三个控制器:dog,cat,和horse.这些控制器都继承自控制器animal.在控制器中animal,我有一个before过滤器,用于对用户进行身份验证:
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "foo" && password == "bar"
end
end
Run Code Online (Sandbox Code Playgroud)
在show行动中dog,我需要对所有用户具有开放访问权限(跳过身份验证).
如果我要单独编写身份验证dog,我可以这样做:
before_filter :authenticate, :except => :show
Run Code Online (Sandbox Code Playgroud)
但是由于dog继承自animal,我无法访问特定于控制器的操作.添加:except => :show在animal控制器不仅将跳过认证show的作用dog,也表明中cat和horse.不希望出现这种情况.
如何才能跳过身份验证仅针对仍然继承的show操作?doganimal
我尝试构建一个嵌套路由的链接,并希望在此链接中添加一个类(用于twitter bootstrap)
结果应该是这样的:
< a href="/#/rents/42" class="btn btn-primary btn-small">do something< /a>
Run Code Online (Sandbox Code Playgroud)
第一次尝试:
{{#link-to "rent" rent}}
Run Code Online (Sandbox Code Playgroud)
给了我一个指向ressource的链接但是我不能指定一个(css)类.在文档中,我看到只能指定title属性
第二次尝试:
< a href="/#/rents/{{rend.id}}" class="btn btn-primary btn-small">do something< /a>
Run Code Online (Sandbox Code Playgroud)
也是一个坏主意,因为Ember会在href中添加其辅助标签[用于自动更新].
那我该怎么办?
我正在使用来自jQuery的模态窗体和窗口小部件,但图标不会出现.例如Cross (X)和Plus-Minus (+-)图标.
当我加载页面我和这些错误.
"NetworkError: 404 NOT FOUND - http://127.0.0.1:8000/static/css/images/ui-bg_flat_75_ffffff_40x100.png"
ui-bg_...100.png
"NetworkError: 404 NOT FOUND - http://127.0.0.1:8000/static/css/images/ui-icons_222222_256x240.png"
ui-ico...240.png
"NetworkError: 404 NOT FOUND - http://127.0.0.1:8000/static/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png"
ui-bg_...100.png
Run Code Online (Sandbox Code Playgroud)
因此,我下载了图像,将其放入指定的路径中,然后+- icons在最右侧出现两次,而且只有column1小部件被最小化.在Close X还没有出现图标.我哪里错了?
我还想知道如何添加删除小部件功能?
我想使用累加器来收集有关我在Spark作业上操作的数据的一些统计信息.理想情况下,我会在作业计算所需的转换时执行此操作,但由于Spark会在不同情况下重新计算任务,因此累加器不会反映真实的指标.以下是文档描述的方式:
对于仅在操作内执行的累加器更新,Spark保证每个任务对累加器的更新仅应用一次,即重新启动的任务不会更新该值.在转换中,用户应该知道,如果重新执行任务或作业阶段,则可以多次应用每个任务的更新.
这很令人困惑,因为大多数操作都不允许运行自定义代码(可以使用累加器),它们主要采用先前转换的结果(懒惰).文档还显示了这一点:
val acc = sc.accumulator(0)
data.map(x => acc += x; f(x))
// Here, acc is still 0 because no actions have cause the `map` to be computed.
Run Code Online (Sandbox Code Playgroud)
但是,如果我们data.count()在最后添加,这将保证是正确的(没有重复)或不是吗?显然acc,不使用"仅内部动作",因为地图是一种转变.所以不应该保证.
另一方面,关于相关Jira门票的讨论谈论"结果任务"而不是"行动".例如这里和这里.这似乎表明结果确实可以保证是正确的,因为我们在acc之前和行动之前使用,因此应该作为单个阶段计算.
我猜这个"结果任务"的概念与所涉及的操作类型有关,是包含一个动作的最后一个,就像在这个例子中一样,它显示了几个操作如何分成几个阶段(洋红色,从这里拍摄的图像):

所以假设,count()在该链的末尾的一个动作将是同一个最后阶段的一部分,我将保证在最后一个地图上使用的累加器不会包含任何重复项?
澄清这个问题会很棒!谢谢.
我刚刚开始学习Ember.js(购买了PeepCode截屏视频),并且从中学到了很顺利,但在尝试编写我的第一个Ember应用程序时遇到了问题.
这是(嵌套)路由映射:
App.Router.map(function () {
this.resource('bases', { path: '/' }, function () {
this.resource('base', { path: ':base_id' }, function () {
this.resource('places', function () {
this.resource('place', { path: ':place_id' });
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
这允许这样的网址:domain.com/#/yokota-ab-japan/places/4c806eabd92ea093ea2e3872
yokota-ab-japan是一个基地(在日本的空军基地)
4c806eabd92ea093ea2e3872的id是Foursquare上的场地的id
当命中places路由时,我通过调用foursquare api设置数据,遍历JSON以创建App.Place对象数组,并返回该数组.
App.PlacesRoute = Ember.Route.extend({
model: function () {
var placesData = Ember.A();
$.getJSON('https://api.foursquare.com/v2/venues/search?ll=35.744771,139.349456&query=ramen&client_id=nnn&client_secret=nnn&v=20120101',
function (data) {
$.each(data.response.venues, function (i, venues) {
placesData.addObject(App.Place.create({ id: venues.id, name: venues.name, lat: venues.location.lat, lng: venues.location.lng }));
});
});
return placesData;
}
});
Run Code Online (Sandbox Code Playgroud)
这似乎运作良好.我使用这个模板显示placesData数组:
<script type="text/x-handlebars" …Run Code Online (Sandbox Code Playgroud) 所以我有这个表格
<form>
<div>
<span class="form_t">I Want To Trade In
<span id="trade_target"></span>
</span>
<span class="form_t">With</span>
<div class="selecting">
<select>
<option>A Mac</option>
<option>An Iphone</option>
</select>
</div>
</div>
<table id="tradein_table">
<tr>
<td class="textside">My contact Info</td>
</tr>
<tr>
<td class="textside">Mobile Number</td>
<td class="inputside"><input type="text" name="Mobile" id="t_mobile"/></td>
</tr>
<tr>
<td class="textside">First Name</td>
<td class="inputside"><input type="text" id="t_first" name="Fname"/></td>
</tr>
<tr>
<td class="textside">Last Name</td>
<td class="inputside"><input type="text" id="t_last" name="Lname"/></td>
</tr>
<tr>
<td class="textside">Email</td>
<td class="inputside"><input type="text" id="t_email" name="Email"/></td>
</tr>
<tr>
<td class="textside">Company</td>
<td class="inputside"><input id="t_company" type="text" name="Company"/>
</td> …Run Code Online (Sandbox Code Playgroud) 我是新手(也是JavaScript新手),请原谅我的超级基本问题.我有一个包含不同图像的HTML页面,它们共享一个类.通过使用getElementsByClassName,我得到一个数组.我想使用.map()函数为数组中的每个单元格添加一个事件监听器.
这就是我所拥有的:
window.onload = function(){
var allImgs = document.getElementsByClassName("pft");
var newImgs = allImgs.map(
function(arrayCell){
return arrayCell.addEventListener("mouseover, functionName");
}
);
};
Run Code Online (Sandbox Code Playgroud)
即使我将内部函数更改为不包含事件侦听器的内容,这仍然显示错误"allImgs.map不是函数".
我有这个代码的另一个版本,我只是遍历window.onload中的数组单元格,并以这种方式将事件监听器添加到它们中,并且它可以工作.为什么.map()函数不起作用?它可以不用于window.onload吗?
所以基本上我想做一些我可以用车把做的东西,但不使用ember只是sails.js和把手.
我这样设置了sails项目:sails new fooProject --template=handlebars运行之后npm install sails-generate-views-handlebars.
太棒了我有一个布局文件,我的所有文件都以.handlebarswoot 结尾.
但我想做这样的事情:
浏览次数:
views/index.handlebars
{{>header}}
{{yield}}
{{>footer}}
Run Code Online (Sandbox Code Playgroud)
/views/partials/foo.handlebars
<div class="foo stuff">...</div>
Run Code Online (Sandbox Code Playgroud)
路由器:
config/routes.js
'/': {
view: 'index',
controller: 'FooController',
action: 'index'
}
Run Code Online (Sandbox Code Playgroud)
控制器:
controllers/FooController
index: function(req, res){
return res.view({partials: 'partials/foo'}); // <-- I want foo partial in the yield.
}
Run Code Online (Sandbox Code Playgroud)
所以我最终得到了这个输出:
<header>...</header>
<div class="foo stuff">
<footer>...</footer>
Run Code Online (Sandbox Code Playgroud)
无论何时我的用户导航,我都想将新的部分渲染到该{{yield}}块中,而无需重新加载页面.但那不行,(我试过).那我怎么做到这一点?
为了帮助澄清我的目标是单页应用程序的感觉,而不必使用前端框架.
我有一个div中的联系表单,它有自己的不透明度0,以及一个div,根据用户点击菜单的内容动态操作内容.用户到达菜单的最后一个阶段后,我需要清除显示所有内容的div的内容,然后将表单div"移动"到它中,这样的工作会不会有效?
$('#menu_form').on('click', function() {
$('#form_div').append('#display_div');
});
Run Code Online (Sandbox Code Playgroud)
因此,为了回顾2个已经存在的div,需要在点击时将其中一个放入另一个.
javascript ×4
jquery ×3
ember.js ×2
json ×2
ajax ×1
apache-spark ×1
append ×1
arrays ×1
inheritance ×1
jquery-ui ×1
node.js ×1
sails.js ×1