小编Pat*_*ssa的帖子

使用JavaScript遍历JSON对象树的所有节点

我想遍历一个JSON对象树,但找不到任何库.这似乎并不困难,但感觉就像重新发明轮子一样.

在XML中,有很多教程展示了如何使用DOM遍历XML树:(

javascript json

140
推荐指数
7
解决办法
20万
查看次数

在Rails中跳过before_filter

为清楚起见,简化了名称和对象.基本概念保持不变.

我有三个控制器: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 => :showanimal控制器不仅将跳过认证show的作用dog,也表明中cathorse.不希望出现这种情况.

如何才能跳过身份验证仅针对仍然继承的show操作?doganimal

inheritance ruby-on-rails before-filter

61
推荐指数
2
解决办法
5万
查看次数

添加类到ember link-to

我尝试构建一个嵌套路由的链接,并希望在此链接中添加一个类(用于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中添加其辅助标签[用于自动更新].

那我该怎么办?

ember.js

54
推荐指数
2
解决办法
2万
查看次数

jQuery UI中缺少图标

我正在使用来自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还没有出现图标.我哪里错了?

我还想知道如何添加删除小部件功能?

jquery jquery-ui

50
推荐指数
4
解决办法
11万
查看次数

累加器何时真正可靠?

我想使用累加器来收集有关我在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()在该链的末尾的一个动作将是同一个最后阶段的一部分,我将保证在最后一个地图上使用的累加器不会包含任何重复项?

澄清这个问题会很棒!谢谢.

apache-spark

47
推荐指数
2
解决办法
1万
查看次数

为什么不调用我的ember.js路由模型?

我刚刚开始学习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)

javascript ajax model-view-controller json ember.js

29
推荐指数
2
解决办法
1万
查看次数

jQuery serialize不会在嵌套div中选择一个select标记

所以我有这个表格

<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)

jquery serialization

22
推荐指数
1
解决办法
2万
查看次数

Javascript .map()不是一个函数

我是新手(也是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吗?

javascript arrays

21
推荐指数
3
解决办法
4万
查看次数

具有Handlebars的Sails.js中的Ember.js等效率(SPA风格)

所以基本上我想做一些我可以用车把做的东西,但不使用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}}块中,而无需重新加载页面.但那不行,(我试过).那我怎么做到这一点?

为了帮助澄清我的目标是单页应用程序的感觉,而不必使用前端框架.

javascript node.js handlebars.js sails.js

13
推荐指数
1
解决办法
364
查看次数

我可以将已存在的div附加到另一个已存在的div吗?

我有一个div中的联系表单,它有自己的不透明度0,以及一个div,根据用户点击菜单的内容动态操作内容.用户到达菜单的最后一个阶段后,我需要清除显示所有内容的div的内容,然后将表单div"移动"到它中,这样的工作会不会有效?

$('#menu_form').on('click', function() {
    $('#form_div').append('#display_div');
});
Run Code Online (Sandbox Code Playgroud)

因此,为了回顾2个已经存在的div,需要在点击时将其中一个放入另一个.

jquery append

10
推荐指数
1
解决办法
4万
查看次数