小编Pet*_*cco的帖子

Twitter Bootstrap typeahead:使用`this`获取上下文/调用元素

我正在使用Twitter Bootstrap 2.1.1和jQuery 1.8.1 的Typeahead组件

我试图从typeahead的updater函数中访问文本框元素.这是我目前的代码,效果很好:

$('#client-search').typeahead({
    source: function (query, process) {
        $.get(url, { query: query }, function (data) {
            labels = [];
            mapped = {};
            $.each(data, function(i,item) {
                mapped[item.label] = item.value;
                labels.push(item.label);
            });
            process(labels);
        });
    }
    ,updater: function (item) {
        $('#client-id').val(mapped[item]);
        return item;
    }
    ,items: 10
    ,minLength: 2
});
Run Code Online (Sandbox Code Playgroud)

我在同一页面上有很多预先搜索框.每个搜索框都有一个id #xxx-search和一个带id的相应隐藏输入#xxx-id.我想通过这样做来重复使用相同的代码:

$('#client-search, #endClient-search, #other-search').typeahead({

    ...

    ,updater: function (item) {
        var target = $(this).attr('id').split('-')[0] + '-id';
        $('#'+target).val(mapped[item]);
        return item;
    }

    ...
Run Code Online (Sandbox Code Playgroud)

我认为这this …

javascript jquery closures typeahead twitter-bootstrap

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

绘制模型和Controller之间的界限

我正在使用RoR构建这个宁静的应用程序,并且发现在应该在模型上发生的事情和应该在控制器上发生的事情之间划一条线有点困难.

作为一个例子,我在我的控制器上有7个方法(那些让它变得安静的方法,即index(),show(),create(),update()...),并且经常发现有必要添加额外的方法,并通过将它们创建为成员来实现.

我想在这里完成的是收集你们在哪里的经验(即我应该在模型上坚持所有数据库交互,只需从控制器中调用这些方法?)

此外,通过向我的控制器添加不涉及DB的内容,即我想进行HTTP调用以从网站屏幕抓取一些数据.

HTTP调用会变得庞大而混乱.应该将所有这些都发送到我的控制器,还是应该单独一个类或模块,并且只包含在我的控制器中以便可以调用它?

如果是这样,最好的办法是什么?

我对这一切有点困惑,所以有人提供意见会很棒.

提前致谢

ruby model-view-controller ruby-on-rails

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

从一对多集合中删除元素(Java + HIbernate + Struts)

我无法从数据库中删除子对象.从org.apache.struts.action.Action.execute()方法中,我将孩子从父母那里移走List,并且还要打电话session.delete(child).我简化了下面的代码,只包含了我认为相关的内容.


Hibernate Mapping

<class 
    name="xxx.xxx.hibernate.Parent" 
    table="parent">

    ...

    <list
        name="children"
        cascade="all,delete-orphan"
        lazy="true"
        inverse="true">

        <key column="parent_id"/>
        <index column="list_index"/>
        <one-to-many class="xxx.xxx.hibernate.Child"/>
    </list>
</class>

<class 
    name="xxx.xxx.hibernate.Child" 
    table="child">

    ...

    <many-to-one
        name="parent"
        class="xxx.xxx.hibernate.Parent"
        not-null="true"
        column="parent_id" />

</class>
Run Code Online (Sandbox Code Playgroud)


摘自execute()方法

Transaction tx = session.beginTransaction();  //session is of type org.hibernate.Session

try {
    Parent parent = (Parent) session.get(Parent.class, getParentId());

    Iterator i = form.getDeleteItems().iterator();  //form is of type org.apache.struts.action.ActionForm
    while(i.hasNext()){
        Child child = (Child) i.next();
        session.delete(child);
        parent.getChildren().remove(child); //getChildren() returns type java.util.List
    }

    session.saveOrUpdate(parent);
    tx.commit();
} …
Run Code Online (Sandbox Code Playgroud)

java collections struts hibernate

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

jQuery UI自动完成功能无法在IE中运行

我在jQuery UI 1.8rc3中有新的自动完成小部件在Firefox中运行良好.它在IE中根本不起作用.有人可以帮我吗?

HTML:

<input type="text" id="ctrSearch" size="30">
<input type="hidden" id="ctrId">
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$("#ctrSearch").autocomplete({
    source: "ctrSearch.do",
    minLength: 3,
    focus: function(event, ui){
        $('#ctrSearch').val(ui.item.ctrLastName + ", " + ui.item.ctrFirstName);
        return false;
    },
    select: function(event, ui){
        $('#ctrId').val(ui.item.ctrId);
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

结果(IE 8):

红色框是<ul>jQuery创建的元素.

http://i40.tinypic.com/6q9quu.jpg

我也得到这个错误:

Line: 116
Error: Invalid argument.

当我在IE8脚本调试器中打开它时,它突出显示f[b]=d在jquery.min.js的第116行.请注意,我正在使用托管在Google服务器上的jQuery版本1.4.2(https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js).

我已经尝试删除一些选项,但即使我.autocomplete()没有选项调用,或只使用源选项,我仍然得到相同的结果.

它再一次在Firefox中运行,但在IE中却没有.有什么建议?

谢谢.

更新: 正如所建议的,我使用了jquery.js(而不是jquery.min.js)并在第4618行得到了错误.请参阅下面的jitter答案.请参阅几天前发布的其他Stack Overflow问题.

更新2: 我发现jQuery UI自动完成使用无效属性this.element.height,应该使用该函数this.element.height()

javascript jquery jquery-ui jquery-ui-autocomplete

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

缩小镜像 SQL Server 2005 数据库的事务日志

我一直在寻找互联网上的所有内容,但找不到可以解决我的问题的可接受的解决方案,我想知道是否有没有妥协的解决方案......

我不是 DBA,但我是一个单人团队,在一个巨大的网站上工作,没有额外的资金用于额外的机构,所以我正在尽我所能。

我们的备份计划很糟糕,我很难改进它。目前,有两台服务器运行 SQL Server 2005。我有一个似乎运行良好的镜像数据库(无见证)。我在中午和午夜进行完整备份。这些由我们的服务提供商每晚备份到磁带上,我每周将备份文件刻录到 DVD 中,以保留手头的旧记录。最终我想切换到日志传送,因为如果没有见证服务器,镜像似乎毫无意义。

问题是事务日志不断增长。从我所做的研究来看,我似乎无法截断镜像数据库的日志文件。那么如何阻止文件增长!?

基于这个网页,我试过这个:

USE dbname
GO
CHECKPOINT
GO
BACKUP LOG dbname TO DISK='NULL' WITH NOFORMAT, INIT, NAME = N'dbnameLog Backup', SKIP, NOREWIND, NOUNLOAD
GO
DBCC SHRINKFILE('dbname_Log', 2048)
GO
Run Code Online (Sandbox Code Playgroud)

但这没有用。我发现的其他所有内容都表明我需要在运行备份日志命令之前禁用镜像才能使其工作。

我的问题 (TL; DR)

如何在不禁用镜像的情况下缩小我的事务日志文件?

database sql-server sql-server-2005 transaction-log mirroring

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