小编cru*_*ush的帖子

如何使用react-router设置默认子路由?

我正在使用React-Router 1.0.0-rc3,但我无法理解如何为子路由设置默认路由.

我的rootRoute设置如下:

var rootRoute = {
    component: 'div',
    childRoutes: [{
        path: '/',
        component: require('./components/Console'),
        childRoutes: [
            require('./routes/FileManager'),
            require('./routes/UserManager')
        ]
    }]
};

React.render(<Router routes={rootRoute}/>, document.body);
Run Code Online (Sandbox Code Playgroud)

我的控制台根组件设置如下:

module.exports = React.createClass({

    render: function () {
        return (
            <div className="console">
                <ConsoleHeader/>
                {this.props.children}
            </div>
        );
    }

});
Run Code Online (Sandbox Code Playgroud)

我的FileManager路由定义如下:

module.exports = {
    path: 'files',

    getComponent: function (location, callback) {
        callback(null, require('./components/FileManager'));
    }
};
Run Code Online (Sandbox Code Playgroud)

我的目标是在其任何子路由处于活动状态时始终加载控制台组件.它将包含基于子路由的子组件.我想要异步加载子组件.如果没有选择子路由,我希望FileManager子路由也是默认路由.

所以以下两个路由都会选择FileManager组件:

/
/files
Run Code Online (Sandbox Code Playgroud)

我知道这样做的一种方法是做这样的事情:

{this.props.children || require('./routes/FileManager/components/FileManager')}
Run Code Online (Sandbox Code Playgroud)

然而,这感觉不对.我不想从路由定义文件中获取FileManager组件的路径.

也许我可以创建一个默认的子路由条目,如:

{
    path: '/', //Or maybe empty string here since it …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router

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

获取KnockoutJS中提交处理程序的事件对象的访问权限

我将ViewModel的submitForm方法绑定到我的form元素,如下所示:

<form action="#" method="post" data-bind="submit: submitForm">
Run Code Online (Sandbox Code Playgroud)

我的ViewModel如下所示:

function ViewModel() {
    this.submitForm = function (data, event) {
        console.log(event); //undefined
    };
}

ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)

当我提交表单,上面的处理程序被解雇,但是eventundefined.我的上述代码基于以下文档:

注意2:访问事件对象或传递更多参数

在某些情况下,您可能需要访问与您的click事件关联的DOM事件对象.Knockout会将事件作为第二个参数传递给您的函数,如下例所示:

<button data-bind="click: myFunction">
    Click me
</button>

<script type="text/javascript">
    var viewModel = {
        myFunction: function(data, event) {
            if (event.shiftKey) {
                //do something different when user has shift key down
            } else {
                //do normal action
            }
        }
    );
    ko.applyBindings(viewModel);
</script>
Run Code Online (Sandbox Code Playgroud)

注意:上面的语法错误是从KnockoutJS示例中逐字复制的.我认为这是他们的错误,明显的纠正应该导致代码按照文档记录的方式工作.

这个代码示例,以及文档引用,尽我所知,模仿我上面写的内容.然而,正如在此的jsfiddle可以看出,event是 …

javascript knockout.js

3
推荐指数
1
解决办法
1184
查看次数

如何使用最少的操作在SQL Server 2012中"插入或选择"?

我一直在寻找类似于此问题的问题,我现在还没有找到任何东西,所以如果以前曾经问过这个问题,那至少可以作为那些对正确命名法无知的人的指针.

INSERT INTO基于唯一键,如果一行尚不存在,我想要一个表.它确实存在,然后我想获得该行的主键ID.

想象一下一个包含电子邮件地址的表:

EmailAddressId(PK) | EmailAddress(UK)
Run Code Online (Sandbox Code Playgroud)

我想在INSERT该表中添加一个新的电子邮件地址,但是有一个独特的约束条件EmailAddress.因此,如果新的电子邮件地址与现有电子邮件地址相同,INSERT则将失败.在那种情况下,我想EmailAddressId从数据库中选择现有的EmailAddress.

我想在最少的操作中执行此操作,假设碰撞将是罕见的情况.

因此,我TRY...CATCH在存储过程中设置了一个块,如下所示:

ALTER PROCEDURE [dbo].[EmailAddressWrite]
    @EmailAddress nvarchar[256]
BEGIN
SET NOCOUNT ON;
    BEGIN TRANSACTION

    DECLARE @EmailAddressId INT

    BEGIN TRY
        INSERT INTO EmailAddress VALUES (@EmailAddress)
        SET @EmailAddressId = (SELECT SCOPE_IDENTITY())
    END TRY
    BEGIN CATCH
        SET @EmailAddressId = (SELECT EmailAddressId FROM EmailAddress WHERE EmailAddress = @EmailAddress)
    END CATCH

    --Do some more stuff with the Id now.

    COMMIT TRANSACTION

    RETURN @EmailAddressId
END
Run Code Online (Sandbox Code Playgroud)

上面的代码起作用,并产生所需的结果,但互联网让我觉得 …

t-sql sql-server sql-server-2012

3
推荐指数
1
解决办法
62
查看次数

SQL仅插入表,如何仅选择最新条目

出于速度和维护历史记录的目的,我创建了一个仅插入表。它的结构非常通用,如下所示:

  `id` bigint(20) unsigned NOT NULL auto_increment,
  `user_id` bigint(20) unsigned NOT NULL,
  `property` varchar(32) NOT NULL,
  `value` longblob NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

它只是一个分配了 user_id 的键/值表。这种方法有其优点,因为并非所有用户都具有相同的属性,因此表中的字段不会浪费。此外,它还允许滚动更改日志,因为我可以看到用户对特定属性所做的每项更改。

现在,由于该表中从未发生过删除或更新,因此我可以假设最大的 id 将始终是最新的条目。

但是,我想一次选择多个属性,例如“address1”、“address2”、“city”、“state”,并且我希望每个属性都是具有最高 id 的类型条目。

因此,如果他们更改了“州”属性 8 次,“城市”属性更改了 4 次,那么我只希望 SELECT 返回每个属性的最新值(1 个州和 1 个城市)。

我不确定使用这种类型的表是否可以有效地完成此操作,因此我对不同的表方法持开放态度。

如果我需要提供更多信息或更好地澄清我的问题,请告诉我。

=== 我尝试了以下操作,但是,在最后一次“address2”更改之后可能会有 3 行“address1”更改。也许使用 GROUP BY 会起作用?

SELECT property, value FROM kvtable WHERE user_id = 1 AND (property = 'address1' OR property = 'address2') ORDER BY id

mysql sql

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

空 PHP 脚本上的 PHP memory_get_usage()

我决定查看一下分配给我的一些 PHP 脚本的内存量,发现其峰值约为 130KiB。考虑到剧本中发生的事情,我想,还不错。

然后,我决定看看剧本是从什么开始的。我预计大约 32KiB。

我得到了 121952 字节。之后,我尝试测试一个完全没有的脚本:

<?php 
echo memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

它也以分配相同数量的内存开始。

现在,显然,PHP 将在脚本运行之前为其分配一些内存,但这似乎有点过多。

然而,根据当时系统可用的内存量,它似乎根本不是动态的。我尝试通过打开其他进程来消耗更多的系统内存,但预分配的内存量保持相同的字节数。

这是否可以在每个脚本的基础上进行配置,PHP 如何确定它将分配给每个脚本的量?

使用 PHP 版本 5.4.7

谢谢。

php memory-management

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

hibernate无效配置异常

我是新来的Hibernate.我的Hibernate配置文件如下:

<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration
    xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
    xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration        hibernate-configuration-4.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">QADEER</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property  name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

使用多个值过滤和排序多维数组

我有一个大的多维数组,如下所示:

Array( 
    [1] => Array ( [type] => blah1 [category] => cat1 [exp_range] => this_week ) 
    [2] => Array ( [type] => blah1 [category] => cat2 [exp_range] => next week ) 
    [3] => Array ( [type] => blah1 [category] => cat1 [exp_range] => next week ) 
    [4] => Array ( [type] => blah2 [category] => cat2 [exp_range] => this_week )
)
Run Code Online (Sandbox Code Playgroud)

我希望能够使用多个过滤器过滤此数组.
例如.过滤where category = cat1和type = blah1将返回数组1和3.

我有以下函数将返回键1,2,3这是不正确的,因为数组2没有cat1blah1

任何人都可以看到我需要做些什么来使这个工作?

也可以在这个函数中加入sortin,如果是这样的话怎么样?

function array_searcher($needles, $array) { 
    foreach ($needles …
Run Code Online (Sandbox Code Playgroud)

php arrays sorting filtering multidimensional-array

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

为什么将方法参数标记为final是一种良好的做法?

假设我通过传递一个对象来调用方法.

public String retrieveXyz(Criteria criteria){

//get some info out of criteria and do something.

}
Run Code Online (Sandbox Code Playgroud)

最好使条件成为最终,以便此处理程序不能用于定位除传递的其他对象或其开销之外的其他对象,因为这不会保护对象状态不被更改.

public String retrieveXyz(final Criteria criteria){

//get some info out of criteria and do something.

}
Run Code Online (Sandbox Code Playgroud)

java oop final

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

这个在C#中有冒号的参数叫什么?

我在C#遇到过一些我以前从未见过的东西(至少我不认识它)...此刻让我感到非常愚蠢.

我下载了Dapper,顺便说一句,这是很棒的,并且正在使用存储过程进行第一次查询.

connection.Query<MyObject>("[dbo].[sp_MyStoredProc]", new
{
    Name = keywords
}, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)

intellisense方法签名说这应该是一个IDbTransaction.这是某种类型的速记转换:

commandType: CommandType.StoredProcedure
Run Code Online (Sandbox Code Playgroud)

变成了IDbTransaction

问题

  1. 这称为语法是什么?
  2. 这里发生了什么?

谢谢!

c# syntax

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

如何在使用KnockoutJS评估之前移动的DOM元素上应用绑定?

我创建了一个自定义绑定,将DOM节点移动到当前DOM节点之前.移动的DOM节点上有文本绑定.要清楚,这看起来像下面的简化示例[ jsfiddle ]:

HTML

<div data-bind="myBinding: myObservable">
   <div data-bind="text: myOtherObservable"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

KnockoutJS Binding

ko.bindingHandlers.myBinding = {
    init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
        var $element = $(element),
            $childElement = $element.find('div');

        //Move the inner div to before the current div, and it won't get evaluated.
        $(element).before($childElement);
    }
};
Run Code Online (Sandbox Code Playgroud)

KnockoutJS ViewModel

function ViewModel() {
    this.myObservable = ko.observable(false);
    this.myOtherObservable = ko.observable("Test");
}

ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)

问题

文本绑定未应用于内部子节点.我假设这是因为DOM树从上到下走.当子节点在当前节点之前移动时,它现在在当前节点之前,并且在向前遍历DOM时将被跳过.

我的实际绑定需要在当前div之前移动div.但是,我需要应用绑定.

在我的绑定处理程序中移动它之前,是否可以在子DOM节点上手动应用绑定?如果是这样,怎么办呢?

knockout.js

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

什么是VB.net中的私有静态只读字段?

我的目标是在VB.NET中创建一个私有静态只读字段.

Public Class MyClass
    Private Static ReadOnly someField As Regex = New Regex("somePattern")
End Class
Run Code Online (Sandbox Code Playgroud)

这会尝试创建仅具有get访问权限的静态属性,但会因错误而失败:

"静态"对成员变量声明无效.

在C#中,我创建如下:

public class MyClass
{
    private static readonly Regex someField = new Regex("somePattern");
}
Run Code Online (Sandbox Code Playgroud)

如何在VB.NET中以类似的方式创建和初始化字段?

vb.net

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

Div被推出<p>

所以我的div被推出了我的

$html = '
<p>
    <a href="*link*?id='.$newsr["topic_id"].'" title="'.$newsr["topic_subject"].'">'.$newsr["topic_subject"].'</a><div style="float:right;">'.$newsr["topic_date"].'</div>
</p>';
echo $html;
Run Code Online (Sandbox Code Playgroud)

结果如下:

<p>
    <a href="*link*?id=21" title="GHBJN">GHBJN</a>
</p>
<div style="float:right;">2013-07-18 17:05:09</div>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我该如何解决?

html

0
推荐指数
1
解决办法
176
查看次数