小编Mac*_*ath的帖子

为什么要使用发布/订阅模式(在JS/jQuery中)?

所以,一位同事向我介绍了发布/订阅模式(在JS/jQuery中),但是我很难掌握为什么会使用这种模式而不是'普通'的JavaScript/jQuery.

例如,之前我有以下代码......

$container.on('click', '.remove_order', function(event) {
    event.preventDefault();
    var orders = $(this).parents('form:first').find('div.order');
    if (orders.length > 2) {
        orders.last().remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

我可以看到这样做的优点,例如......

removeOrder = function(orders) {
    if (orders.length > 2) {
        orders.last().remove();
    }
}

$container.on('click', '.remove_order', function(event) {
    event.preventDefault();
    removeOrder($(this).parents('form:first').find('div.order'));
});
Run Code Online (Sandbox Code Playgroud)

因为它引入了removeOrder为不同事件等重用功能的能力.

但是,为什么你决定实现发布/订阅模式并转到以下长度,如果它做同样的事情?(仅供参考,我使用jQuery tiny pub/sub)

removeOrder = function(e, orders) {
    if (orders.length > 2) {
        orders.last().remove();
    }
}

$.subscribe('iquery/action/remove-order', removeOrder);

$container.on('click', '.remove_order', function(event) {
    event.preventDefault();
    $.publish('iquery/action/remove-order', $(this).parents('form:first').find('div.order'));
});
Run Code Online (Sandbox Code Playgroud)

我肯定已经读过关于这种模式的内容,但我无法想象为什么这种模式是必要的.我看过的解释如何实现这种模式的教程只是作为我自己的基本示例.

我认为pub/sub的有用性会在更复杂的应用程序中显现出来,但我无法想象.我担心我完全忽略了这一点; 但是如果有的话,我想知道这一点!

你能简洁地解释为什么以及在什么情况下这种模式是有利的?是否值得像上面的例子那样使用pub/sub模式进行代码片段?

javascript jquery design-patterns publish-subscribe

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

jqGrid中的隐藏列

有没有办法隐藏jqGrid表中的列,但是在表单编辑器模式对话框中编辑行时,它是否显示为只读?

javascript jquery jqgrid

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

Oracle:将VARCHAR2列更改为CLOB

我遇到一个问题,我试图存储在我的varchar2(4000)列中的数据太大,所以我希望将列更改为更适合存储大量文本数据的列.具体来说,是序列化数组.

  1. 首先,CLOB是我用于此目的的最佳数据类型吗?有更合适的数据类型吗?

  2. 其次,当我尝试使用通常的snyntax改变列时:

    ALTER TABLE table MODIFY column CLOB
    
    Run Code Online (Sandbox Code Playgroud)

    我收到以下错误:ORA-22858:数据类型的无效更改

    在不丢失任何数据的情况下,更改此表的最简单方法是什么?

database oracle

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

TortoiseSVN - 忽略存储库中已有的文件夹中的文件

如何忽略源代码管理下的文件夹中的所有文件?

/project/published/ 是我想保留的文件夹

/project/published/some_file(s) 是我不想要的文件/文件夹

更多详细信息:目前,当我为项目提交更改时,我看到了许多我不想要的文件.它们是发布到文件夹的文件,我不需要它们在源代码管理下.我永远不会知道这些文件的名称,因为它们是由用户选择的.

我试图使用svn:ignore具有值的属性,published/*但这不起作用.有任何想法吗?

svn tortoisesvn ignorelist

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

jqGrid自定义编辑对话框

我正在使用一个使用jqGrid的应用程序.问题是应该出现在行编辑的编辑对话框必须具有特定的布局.所以我宁愿通过ajax加载它,然后手动将数据发送回jqGrid.我在论坛上搜索了很多但我找不到如何做的例子.

所以,我只需要jqGrid用PHP脚本中的自定义内容填充编辑对话框弹出窗口.

更新:我的想法是我有一个表单生成器,用户可以在其中设置编辑字段的位置/宽度/高度/可见性......这必须在编辑对话框中使用.

php jquery jqgrid

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

Oracle'INSERT ALL'忽略重复项

我有一个数据库表,它有一个唯一的约束(唯一(DADSNBR, DAROLEID)对).我将同时在这个表中插入多个值,所以我想使用一个查询完成它 - 我假设这将是更快的方式.我的查询是这样的:

INSERT ALL
    INTO ACCESS (DADSNBR, DAROLEID) VALUES (68, 1)
    INTO ACCESS (DADSNBR, DAROLEID) VALUES (68, 2)
    INTO ACCESS (DADSNBR, DAROLEID) VALUES (68, 3)
    INTO ACCESS (DADSNBR, DAROLEID) VALUES (68, 4)
SELECT 1 FROM DUAL
Run Code Online (Sandbox Code Playgroud)

由于语句中的某些条目与数据库中已存在的条目重复,因此整个插入失败并且未插入任何行.

有没有办法忽略唯一约束失败的情况,只需插入唯一的那些,而不必将其拆分成单独的INSERT语句?

编辑:我意识到我可能不想这样做,但我仍然很好奇它是否可能.

oracle insert duplicates unique-constraint

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

jqgrid getRowData返回null

我有以下代码:

$buttonoptions = array("#pager", 
    array(
        "caption" => "Select Product",
        "onClickButton" => "js: function() {
            var selr = jQuery('#grid').jqGrid('getGridParam', 'selrow');
            var kelr = jQuery('#grid').jqGrid('getRowData', 'product_cat_id');
            if(selr) { 
                alert('grid.php?advice=' + selr + kelr); 
            } else {
                alert('Please Select a Product!');
                return false;
            }
        }"
    )
);
Run Code Online (Sandbox Code Playgroud)

我通过以下方式成功获得了行ID:

var selr = jQuery('#grid').jqGrid('getGridParam','selrow');
Run Code Online (Sandbox Code Playgroud)

但无法获取所选行列的数据product_cat_id.

怎么了?

jquery jquery-plugins jqgrid jqgrid-php

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

是否有可能在Eclipse中显示符号链接资源的图标?

我使用Linux并在我的项目中使用符号链接(符号链接)来共享不同位置的公共文件.我还使用颠覆作为团队提供者插件.

对于符号链接文件夹Eclipse或更好的Subclipse,在项目资源管理器中的文件图标上显示箭头覆盖.但是对于符号链接文件,这个小箭头没有显示.所以无法判断文件是否符号链接,因为它看起来像普通文件.

是否有选项或插件可以为常规文件或符号链接提供可视指示符?

eclipse symlink indicator

6
推荐指数
1
解决办法
725
查看次数

PDOStatement:在`fetchAll($ mode);`和`setFetchMode($ mode)之间获得不同的结果; 使用fetchall();`

我有一个关于PDO的问题.

两者之间有区别吗?

$sql = "SELECT * FROM pages";
$pdo = $this->db->query($sql);
$result = $pdo->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC); 
Run Code Online (Sandbox Code Playgroud)

$sql = "SELECT * FROM pages";
$pdo = $this->db->query($sql);
$pdo->setFetchMode(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
$result = $pdo->fetchAll();
Run Code Online (Sandbox Code Playgroud)

$result对他们每个人都有所不同.

PHP的关于这些获取模式的文档对我来说不是很清楚.

我有一个包含不同页面的表,我想获取其ID所索引的所有页面.

第一种方法返回:

[
   [id of page 1] => [
      [0] => [ page 1 ],
   ],
   [id of page 2] => [
      [0] => [ page 2 ],
   ],
   ...
]
Run Code Online (Sandbox Code Playgroud)

当我做第二种方法时,我只得到:

[
   [0] => [ page 1 ],
   [1] => [ page 2 ],
   [3] => …
Run Code Online (Sandbox Code Playgroud)

php arrays pdo fetch

6
推荐指数
1
解决办法
778
查看次数

从FormData对象中排除不可见的表单元素

我正在使用Javascript和jQuery的组合来创建一个FormData对象,以通过AJAX请求发送表单数据。这是我的原始代码:

// $form is a jQuery object of the form in question
var formData = new FormData($form[0]);
Run Code Online (Sandbox Code Playgroud)

我的问题是找到一种简洁的方法来.not(':visible')FormData对象收集的数据中排除不可见的元素。我知道我可以使用jQuery的serialize()方法轻松完成此操作,但是FormData由于要上传图片文件,因此需要在此特定实例中使用。

我设法做到这一点的唯一方法是使用以下代码:

// $form is a jQuery object of the form in question
// Clone the original form
var $formClone = $form.clone();

// Remove invisible items from form
$form.find('input, textarea').not(':visible').remove();

// Collect form data with invisible items removed
var formData = new FormData($form[0]);

// Replace form with cloned form which retains invisible elements …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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