小编idb*_*ley的帖子

设置集合上的属性 - 主干js

主干js中的集合不允许您使用set属性,但我经常发现需要存储有关集合的一些元信息.设置该信息的最佳位置在哪里?

javascript collections backbone.js

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

使用jasmine测试backbone.js应用程序 - 如何在视图上测试模型绑定?

在尝试测试视图是否与事件正确绑定时,我遇到了一些有趣的磨难.在骨干中,我们通常使用以下内容中的某些内容绑定到initialize方法中的事件something.bind("change", this.render);.在我的测试中,我想确保设置此绑定,因此我执行了以下操作: 

this.myView = new MyView();
spyOn(this.myView, "render");;
this.legendView.groupData.trigger("change");
expect(this.legendView.render).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)

但是,这不会奏效.因为绑定发生在MyView的初始化函数中,所以事件get被绑定到myView的渲染函数AT THAT TIME.因此,当您添加间谍时,它会包装渲染功能并将其设置回myView.render.但是由第一个绑定创建的闭包仍然存在,我们完全是胡说八道.那么我们能做些什么呢?我做了什么,是将我的绑定调用移动到一个单独的函数,如: 

myView = Backbone.View.extend({
initialize: function(){
    _.bindAll(this, "render");
    this.initialize_model_bindings();
},
initialize_model_bindings: function(){
    something.bind("change", this.render);
},
render: function(){ //... }
});
Run Code Online (Sandbox Code Playgroud)

然后我的测试看起来像:

this.myView = new MyView();
spyOn(this.myView, "render");
this.myView.initialize_model_bindings();
this.legendView.groupData.trigger("change");
expect(this.legendView.render).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)

这有效,但我正在寻找更好的解决方案.谢谢

javascript view backbone.js jasmine

20
推荐指数
2
解决办法
4302
查看次数

在backbone.js集合中保留和加载元数据

我有一个使用backbone.js的情况,其中我有一组模型,以及一些关于模型的其他信息.例如,假设我正在返回金额列表:它们具有与每个模型相关联的数量.现在假设每个金额的单位总是相同的:比如夸脱.然后我从我的服务回来的json对象可能是这样的:

{
    dataPoints: [
         {quantity: 5 },
         {quantity: 10 },
         ...
    ],
    unit : quarts
 }
Run Code Online (Sandbox Code Playgroud)

现在骨干集合没有真正的机制来将这个元数据与集合本地关联,但是在这个问题中我建议:在集合上设置属性 -我可以使用.meta(property, [value])样式函数扩展集合的主干js - 这是一个好的解决方案 但是,我们自然希望能够从json响应中干净地检索这些数据,就像我们上面的那样.

Backbone.js为我们提供了parse(response)函数,它允许我们指定从url属性中提取集合的模型列表的位置.但是,我没有办法在不重载的情况下创建更智能的功能,fetch()这将删除已经可用的部分功能.

我的问题是:有没有比重载更好的选择fetch()(并尝试调用它的超类实现)来实现我想要实现的目标?

谢谢

javascript collections json backbone.js

14
推荐指数
1
解决办法
4687
查看次数

我应该在哪里放置与视图相关的常量 - backbone.js

想象一下,我有一个视图,作为视图的一部分,它渲染'x'模型对象,仅渲染'x'.问题是,我认为这个视图相关的常量是否合适?

我的猜测是做这样的事情:

myApp.MyView = Backbone.View.extend({
    ...
    myConstant: 10,
    ...
    render: function(){
        ...
        //some code that uses myConstant
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)

这有意义吗?

有任何建议帮助!

constants conventions view backbone.js

14
推荐指数
2
解决办法
6149
查看次数

Flask长期存在全球资源

我正在使用Flask构建我的Web应用程序,并且我想注册一个全局资源,该资源表示与远程服务的连接,该服务的持续时间超过请求(在这种情况下,连接是一个可以有效的SOAP连接最多30天).

另一个例子可能是像MongoDB这样的数据库,它处理驱动程序中的连接池,如果你在每个请求上创建了一个新的连接,它将表现不佳.

应用程序上下文和请求上下文似乎都不适合此任务.

问题"将另一个对象传递给主要烧瓶应用程序 "表明我们将这些资源存储在app.config字典中.

python flask

12
推荐指数
1
解决办法
2563
查看次数

泽西没有WebApplication提供商在添加jersey-*依赖时出现

我有一个简单的Spring&Jersey应用程序,它非常适合通过简单的资源消费请求.但是,我想返回一个JSON响应 - 包含一个对象的简单JSON序列化.为此,我添加了一个maven依赖项jersey-json.但是,只要我添加此依赖项,我就会在服务器启动时收到此错误:

com.sun.jersey.api.container.ContainerException: No WebApplication provider is present  at      
     com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:69) at
     com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)
Run Code Online (Sandbox Code Playgroud)

我并不完全清楚提供商到底是什么,但我很确定应该找到一个默认提供商.

为了完整性,这是我的资源:

@Path("/scan")
@Resource
@Component
public class ScanResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/{barcode}")
    public List<Scan> getScansForBarcode(@PathParam("barcode") Long barcode){
        ..snip..
        return results;
    }
}
Run Code Online (Sandbox Code Playgroud)

Scan对象是一个简单的Entity Bean对象.

mvn依赖是:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.11</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我会得到No WebApplication provider is present例外?有关如何解决它的任何想法?

谢谢

spring json jersey

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

JPA2 Criteria API .as(String.class)转换为char(1) - 我该如何解决这个问题?

使用标准api,我有一个查询,它执行以下操作:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<SourcePath> pathQuery = cb.createQuery(SourcePath.class);
Root<SourcePath> pathRoot = pathQuery.from(SourcePath.class);
pathQuery.where(cb.equal(cb.literal(0x00010002).as(String.class), (pathRoot.get(SourcePath_.path))));

TypedQuery<SourcePath> query = entityManager.createQuery(pathQuery);
query.getResultList();
Run Code Online (Sandbox Code Playgroud)

生成的sql查询结果如下:

select ...snip aliases... from SourcePath where cast(x'00010002', char(1)) = path;
Run Code Online (Sandbox Code Playgroud)

(路径将是一些讨厌的旧别名,但这是无关紧要的).

此查询不正确.特别是,中投:cast(x'00010002', char(1))不强制转换为字符串,由指定的.as(String.class),相反,它应该是cast(x'00010002', char),或者cast(x'00010002', char(N)在那里N是一个合适的足够大的数量.

我已将此抛出失败的原因与org.hibernate提供的MySqlDialect隔离开来.尤其:

public String getCastTypeName(int code) {
    if ( code==Types.INTEGER ) {
       return "signed";
    }
     else if ( code==Types.VARCHAR ) {
        return "char";
    }
    ...snip...
}
Run Code Online (Sandbox Code Playgroud)

链的哪一个被解释为a char,由对话框注册:registerColumnType( Types.CHAR, "char(1)" );.

最后,对我的问题.我该如何解决这个问题?我是否将其报告为Hibernate的错误?我是否扩展了Dialog并从getCastTypeName更正了返回的类型?是否有 …

mysql hibernate casting criteria-api jpa-2.0

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

没有基础表的Hibernate实体

我有一个非常难看的遗留数据库系统,我需要与之集成.基本上我在系统上做一些只读报告,我不想设置代表我正在处理的每个表的一千个实体.相反,我想为我生成的每个报告类型定义一个实体(实质上是来自不同表的一堆列的联合),然后让hibernate映射来讨厌(许多已加入,很多联合) sql查询到这样的实体列表.

问题是:我可以创建一个没有基础表的实体,并使用sql语句填充所述实体的列表吗?

谢谢!

java hibernate jpa-2.0

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

用Clock.systemDefaultZone().millis()天真地替换System.currentTimeMillis()是否安全?

Java 8引入了java.time.Clock接口,它应该允许我有效地模拟系统时间调用(太棒了!).

我想天真地替换调用System.currentTimeMillis()与调用someClock.millis(),但目前尚不清楚,我认为这两个时钟实际上将根据给定的caviet所有情况下返回相同的价值观Clock.system*,他们使用"的状态文档...最好的系统时钟". System.currentTimeMillis()没有说明使用最佳可用时钟的任何类似声明.

java datetime java-time

8
推荐指数
1
解决办法
3378
查看次数

backbone.js查看继承.父母的这个决议

我有一个使用视图继承的案例,我的代码看起来基本上像:

parentView = Backbone.View.extend({
    events: {
        "some event": "business"
    },
    initialize: function(){
        _.bindAll(this);
    },
    business: function(e){
        ...
        this.someFunc && this.someFunc();
        ...
     }
});

childView = parentView.extend({
    events: {
        ...
    },
    constructor: function(){
       this.events = _.extend( {}, parentView.prototype.events, this.events );
       parentView.prototype.initialize.apply( this );
    },
    initialize: function(){
       _.bindAll(this);
    },
    someFunc: function(){
       ...
    }
});
Run Code Online (Sandbox Code Playgroud)

更新:将this.events扩展移动到构造函数.

我的子视图包含someFunc在其中,并且在父视图中的某些业务功能期间,它应该调用该函数(如果存在).如果this正确设置为childView,那么this.someFunc应该存在.然而,这不是我遇到的行为.

initialize函数期间(在父级中),this确实设置为子视图.但是,当some event触发时,business使用thisset to 调用该函数parentView.

javascript inheritance view backbone.js

7
推荐指数
1
解决办法
4522
查看次数