小编Ren*_*soo的帖子

ExtJS中有map()函数吗?

ExtJS有Ext.each()函数,但是map()是否也隐藏在某处?

我已经很努力了,但还没有找到任何可以填补这个角色的东西。这似乎是一些简单而琐碎的事情,像 Ext 这样大的 JS 库显然必须具备。

或者当 Ext 确实不包含它时,将其添加到 Ext 的最佳方法是什么?当然,我可以这样写:

Ext.map = function(arr, f) { ... };
Run Code Online (Sandbox Code Playgroud)

但这真的是正确的方法吗?

javascript dictionary extjs

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

如何说服其他程序员使用Gettext?

我已经在我工作的许多项目中成功使用了GNU Gettext,但在我最近的工作中,我突然发现自己被迫使用一个非常笨拙的本地化系统.

当前系统将翻译存储在数据库中,并添加新的翻译,如下所示:

  • 添加带有翻译键的函数调用到源代码,例如 print translate('foo');
  • 将少量SQL INSERT语句添加到translations.sql文件中.
  • 用名称创建文件 (current revision nr + 1).sql
  • 在数据库中执行.sql文件.
  • 提交您的更改(在其他人设法提交并更改当前修订号之前).

所有这些过程都是完全手动的,即使您需要修复一个小错字,也必须重复几乎全部.不支持复数形式.整个翻译数据库非常混乱,因为翻译几乎从未被删除 - 仅添加和更新.

我已经尝试了几个参数来说服其他开发人员(特别是一个特定的开发人员):

  • 我已经谈到Gettext正在建立标准,并且有许多工具可用于处理PO文件.
  • 我试图解释在数据库中存储翻译没有将其存储到文本文件中的好处 - 我们只是按键从数据库中检索翻译,仅此而已.
  • 另一个开发人员正在开发我们应用程序的PHP部分,PHP内置了Gettext.我正在开发JavaScript方面,它没有Gettext支持,但我过去已经为它构建了自己的工具.
  • 我们的应用程序不是那么大,即使手动完成,从旧系统转换为Gettext也需要花费大量时间,我确信它可以轻松实现自动化.
  • 我甚至成功地将Gettext用于我们公司的一个小应用程序.

但人们仍然不相信.我可能做错了什么?

编辑:

在发布此问题几个月后,我们现在终于转换到Gettext.当我们需要支持两种以上语言时,我们当前系统的缺点对于那些抵制它的人来说更加明显.

javascript php gettext

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

如何将个人身份与个人数据分开?

我正在编写一个应用程序,主要目的是保持用户购买列表.

我想确保即使我作为开发人员(或任何完全访问数据库的人)也无法弄清楚某个人花了多少钱或者他已经购买了什么.

我最初想出了以下方案:

    --------------+------------+-----------
    user_hash     | item       | price
    --------------+------------+-----------
    a45cd654fe810 | Strip club |     400.00
    a45cd654fe810 | Ferrari    | 1510800.00
    54da2241211c2 | Beer       |       5.00
    54da2241211c2 | iPhone     |     399.00
  • 用户使用用户名和密码登录.
  • 从密码计算user_hash(可能与盐渍等).
  • 使用哈希通过普通的SQL查询访问用户数据.

如果有足够的用户,通过了解他的名字,几乎不可能知道特定用户花了多少钱.

这是明智的做法,还是我完全愚蠢?

hash database-security sensitive-data

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

slideDown和slideUp错误

我是jQuery的新手,我已经看到了内置的slideDown()/ slideUp()动画的问题.我正在使用灵活的宽度元素,当我使用该函数时,元素不会返回到它的全宽.我认为这与jQuery找到元素宽度的方式有关.我遇到了Safari 3和Firefox 3.1 for OS X中的错误.以下是该页面的html:

<div id="archive">
    <h2 class="first open">May</h2>
    <table width="100%" cellspacing="0" cellpadding="0" border="0" class="list">
         <tr class="first">
              <td width="65%"><a href="#">This month</a></td>
              <td align="right">Sunday, May 31   <input type="button" value="Edit"/></td>
         </tr>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

和Javascript:

// Enable month names to re-open divs
$("#archive h2").not(":last").wrapInner("<a href='#'></a>").end().find
("a").click(function(event){

event.preventDefault();

var h2 = $(this).parent();

if (h2.hasClass("open")) { // Close

    h2.removeClass("open");
    h2.next().slideUp("fast");


} else { // Open

    h2.addClass("open");
    h2.next().slideDown("fast");


}

});
Run Code Online (Sandbox Code Playgroud)

这个问题可以通过包装in来解决,但随后在Firefox中出现一个新的错误,其中slideDown动画跳到最后.

任何帮助,将不胜感激.

谢谢,布兰登

javascript css jquery

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

EXTJS:过滤器存储不会出现第一次单击组合

我想在从组合中选择值时过滤商店.当我选择第一个值时它不会过滤它但是在选择任何其他值时第二次它运行良好我的商店有autoLoad = true这里是我的代码

xtype: 'combo'
,fieldLabel: 'Online Type'
,name:'OnlineType'
,id:'cmbOnlineType'
,store: common.getStore(accounts20.dataForms.onlinePayments._storeOnlineType, accounts20.dataForms.onlinePayments)
,displayField:'OnlineType'
,valueField:'OnlineType'
,mode:'local' // important property when using store
,typeAhead: true
,triggerAction: 'all'
,selectOnFocus:true
,allowBlank:false
,forceSelection:true
,editable:true
,tabIndex:4
,width : 188
,listeners:{
    select:function(){
        if(Ext.getCmp('onlinePay-hdnMode').value!="E")
        {
            Ext.getCmp('onlinePay-cmbChequeNo').clearValue();
            Ext.getCmp('onlinePay-cmbChequeNo').getStore().removeAll();
            Ext.getCmp('onlinePay-cmbCrAccount').clearValue();
        }
        var store = Ext.getCmp('onlinePay-cmbCrAccount').getStore();
        if(this.getValue()=="Cheque" || this.getValue()=="Internet/Mobile")
        {   
            Ext.getCmp('onlinePay-chkIncCharges').setValue(false);
            if(this.getValue()=="Internet/Mobile")
            {
                Ext.getCmp('onlinePay-cmbChequeNo').disable();
                Ext.getCmp('onlinePay-chkIncCharges').disable();
            }else{
                Ext.getCmp('onlinePay-cmbChequeNo').enable();
                Ext.getCmp('onlinePay-chkIncCharges').enable();
            }
            //Filter store on bank accounts
            store.filter([
                {
                    property     : 'AccountTypeId',
                    value        : 'B',//Bank Accounts
                    anyMatch     : true, //optional, defaults to true …
Run Code Online (Sandbox Code Playgroud)

extjs extjs3

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

将括号的字符串解析为Haskell中的嵌套List

我的目标是编写一个函数来将嵌套括号的字符串解析为相应的列表:

parseParens "()" --> []
parseParens "(())" --> [[]]
parseParens "((()()))" --> [[[],[]]]
Run Code Online (Sandbox Code Playgroud)

首先我发现我无法指定轻松定义返回值的类型.我可以这样做:

parseParens :: String -> [[[[t]]]]
Run Code Online (Sandbox Code Playgroud)

但是我怎么说它是无限嵌套的呢?我猜Haskell不允许这样做.

我的解决方案

我提出了自己的数据类型:

data InfiniteList = EmptyList | Cons InfiniteList InfiniteList deriving (Show)
Run Code Online (Sandbox Code Playgroud)

还有一个使用它的解析器函数:

parseParens :: String -> InfiniteList
parseParens ('(':xs) =
    if remainder == ""
        then result
        else error "Unbalanced parenthesis"
    where (result, remainder) = parseToClose EmptyList xs
parseParens _ = error "Unbalanced parenthesis"

parseToClose :: InfiniteList -> String -> (InfiniteList, String)
parseToClose acc "" = error "Unbalanced parenthesis!"
parseToClose …
Run Code Online (Sandbox Code Playgroud)

parsing haskell list infinite

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

如何在Mercurial中创建预推钩

有没有办法在执行推送之前先勾上钩子。例如,当我键入代码时,我想在代码库上运行JSHint;hg push发现任何错误时,我将中止推送。

我首先尝试使用pre-commit钩子。那行得通,但是在每次提交之前等待几秒钟是很麻烦的。此外,我有时会用可能损坏的代码进行中间提交。

阅读我发现的hgrc文档preoutgoingpre-outgoing这似乎是我想要的东西。但是这些没有用。他们似乎唯一要做的就是在键入时运行钩子:

hg outgoing
Run Code Online (Sandbox Code Playgroud)

对我完全没有用。

mercurial mercurial-hook

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

Haskell 中无法识别的 HLINT 编译指示

我正在尝试禁用 HLint 给我的一些警告。根据文档,我应该能够在我的文件顶部添加一个编译指示。所以我尝试了以下方法:

{-# HLINT ignore #-}
module Main where
Run Code Online (Sandbox Code Playgroud)

然而,这在运行时给了我一个错误stack build

/Users/nene/somedir/src/Main.hs:1:1: warning: [-Wunrecognised-pragmas]
    Unrecognised pragma
  |
1 | {-# HLINT ignore #-}
  | ^^^
Run Code Online (Sandbox Code Playgroud)

似乎 pragma 实际上在我的编辑器(带有“Haskell”扩展名的 VSCode)中有效,但在运行stack.

haskell hlint visual-studio-code haskell-stack

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

有没有办法禁用 Redux 警告:在状态中检测到不可序列化的值

火狐控制台日志

我完全意识到将不可序列化值存储到 Redux 状态的缺点。就像Redux 文档所说:

如果您对持久性和时间旅行调试等可能无法按预期工作的事情感到满意,那么完全欢迎您将不可序列化的项目放入 Redux 存储中。

所以,我只是制作原型来尝试一些想法。我将来可能会重构代码以从状态中消除这些函数对象,但目前这些警告只是淹没我的控制台,掩盖了我可能真正关心的其他消息。

是否有一些开关可以打开/关闭这些警告?

javascript redux redux-toolkit

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