标签: chaining

如何通过链接早期附加的方法将事件附加到表单的onSubmit事件?

我的应用程序实际上有数百页.现在我必须在onSubmit表单上附加一个事件'disablePage'.我不想去每一页写下:

<form name="frmname" onSubmit="disablePage();">
Run Code Online (Sandbox Code Playgroud)

我现在正在做的是: -

来自common.js文件的摘录; [包含在所有页面中]

/* we have to attach 'attachFormSubmit' method on onLoad event, 
   otherwise forms[0] will always be null. If there is any alternative, 
   then please suggest one */
if (window.addEventListener){   
    window.addEventListener('load', attachFormSubmit, false); 
} else if (window.attachEvent){ 
    window.attachEvent('onload', attachFormSubmit );
}

function attachFormSubmit(){
    forms = document.getElementsByTagName('Form');  
    if ( forms[0] ){  // there is only one form in all pages    
        if (forms[0].addEventListener){         
            forms[0].addEventListener('submit', disablePage, false); 
        } else if (forms[0].attachEvent){           
            forms[0].attachEvent('onsubmit', disablePage);
        }
    }
}

function …
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events method-chaining chaining

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

使用string.Substring()作为链的一部分

我试图操纵一个字符串而不会产生一个大问题并将其分散到多行,所以我使用一些链接来实现这一点.我的问题是,如何在此上下文中string.Substring()删除字符串的最后一个字符?

在PHP中,我可以传递一个负数作为参数(即substr(-1))来实现这一点,但显然这不是C#的工作方式.

mystring = mystring.Replace('_', ' ').Substring(???);

另外,上面使用的技术的实际名称是什么?我总是把它称为回调链,但我现在认为回调链是完全不同的.

请注意我想避免:

mystring = mystring.Replace('_', ' ');
mystring = mystring.Substring(0, mystring.Length - 1);
Run Code Online (Sandbox Code Playgroud)

提前感谢您的时间和善意的考虑.

伊恩

谢谢你的答案.有趣的是,人们可以对字符串操作和其他"竞争"语言有如此强烈的意见:)

c# string chaining

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

方法链接包括类构造函数

我正在尝试在C++中实现方法链接,如果类的构造函数调用是一个单独的语句,结果很容易,例如:

Foo foo;

foo.bar().baz();
Run Code Online (Sandbox Code Playgroud)

但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨期望";" 代替"." 在构造函数调用后立即:

Foo foo().bar().baz();
Run Code Online (Sandbox Code Playgroud)

我现在想知道这在C++中是否真的可行.这是我的测试类:

class Foo
{
public:
    Foo()
    {
    }

    Foo& bar()
    {
        return *this;
    }

    Foo& baz()
    {
        return *this;
    }
};
Run Code Online (Sandbox Code Playgroud)

我还在C++(http://en.wikipedia.org/wiki/Fluent_interface#C.2B.2B)中找到了一个"流畅的接口"的例子,这似乎正是我正在寻找的.但是,我得到该代码的相同编译器错误.

c++ methods constructor chaining

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

在JavaScript中链接一个函数?

我想创建一个将项添加到localStorage对象的函数.例如:

alert(localStorage.getItem('names').addItem('Bill').getItem('names'));
Run Code Online (Sandbox Code Playgroud)

第一个方法是getItem,它获取localStorage对象的项目......但addItem将是一个自定义函数.这一系列功能最终将提醒比尔.

那么,我如何将此功能链转换为localStorage?

javascript html5 chaining local-storage

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

在node.js中创建链式方法?

是否可以在node.js中创建像这样异步的链式方法

File.create('file.jpg').rename('renamed.jpg').append('Hello World')
Run Code Online (Sandbox Code Playgroud)

也就是说非阻塞.

javascript chaining node.js

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

Ruby链如何工作?

为什么你可以链接这个:

"Test".upcase.reverse.next.swapcase
Run Code Online (Sandbox Code Playgroud)

但不是这个:

x = My_Class.new 
x.a.b.c
Run Code Online (Sandbox Code Playgroud)

哪里

class My_Class 

  def a 
    @b = 1 
  end 

  def b
    @b = @b + 2 
  end 

  def c 
    @b = @b -72 
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby chaining

5
推荐指数
3
解决办法
2787
查看次数

如何使用ImageMagick的convert命令链接图像转换?

我有一个原始图像(比方说,1600x1200),我想创建一系列具有各种分辨率的缩略图:

  • 900x0(即表示图像按比例缩放至900像素宽)
  • 700x0
  • 0x550(即表示图像按比例缩放至550像素高)
  • 0x400的
  • 量0x150
  • 200x200(即裁剪和居中)

单独地,我可以使用convert命令处理每个转换.问题是,不断重新初始化会浪费大量资源convert; 将事物链接起来以便convert重用其工作会更好.

使用ImageMagick 6.7.0-10我尝试了以下(使用该+write选项,请参阅http://www.imagemagick.org/script/command-line-options.php#write),但它不能用作+write命令似乎无法将图像恢复到其原始状态:

convert '/tmp/original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' -resize '900>' +write '/tmp/900.jpg' -resize '700>' +write '/tmp/700.jpg' -resize '200x' -crop '200x200+0+35' +repage +write '/tmp/200.jpg' -resize 'x550>' +write '/tmp/550.jpg' -resize 'x400>' +write '/tmp/400.jpg' -resize 'x150>' '/tmp/150.jpg'

或者,我尝试了以下(使用+clone-delete).它似乎工作,但很可能会更高效(也许mpr:,http://www.imagemagick.org/Usage/files/#mpr):

convert 'original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' \( +clone …

image imagemagick image-processing chaining

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

在subprocess.Popen中使用&amp;&amp;进行命令链接?

我使用的是subprocess.PopenPython了,我还没有碰到过加盟命令的一流解决方案(即foob​​ar的到来&&通过bizbang) Popen

我可以这样做:

p1 = subprocess.Popen(["mmls", "WinXP.E01"], stdout=subprocess.PIPE)
result = p1.communicate()[0].split("\n")
for line in result:
    script_log.write(line)

script_log.write("\n")

p1 = subprocess.Popen(["stat", "WinXP.E01"], stdout=subprocess.PIPE)
result = p1.communicate()[0].split("\n")
for line in result:
    script_log.write(line)
Run Code Online (Sandbox Code Playgroud)

但这在美学上确实不是很令人满意(尤其是当我通过菊链多个命令时)Popen


我想在尽可能少的命令块中复制此输出。

not@work ~/ESI/lab3/images $ mmls WinXP.E01 && echo -e "\n" && stat WinXP.E01
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Description
00:  Meta    0000000000   0000000000   0000000001   Primary Table (#0)
01:  -----   0000000000 …
Run Code Online (Sandbox Code Playgroud)

python linux popen chaining python-2.7

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

在dplyr包中以链接方式添加属性

有没有办法%>%dplyr包中使用链接序列代码运算符添加属性?

> library(dplyr)
> iris %>%
+   attr( "date") = Sys.Date()
Error in iris %>% attr("date") = Sys.Date() : 
  could not find function "%>%<-"
> 
Run Code Online (Sandbox Code Playgroud)

谢谢你的回复.

attributes r chaining attr dplyr

5
推荐指数
3
解决办法
838
查看次数

构造函数链接或使用命名/可选参数

我是一个非常新的程序员,并且了解到我们希望最大程度地减少代码冗余,因此在我们进行更新时,我们可以进行尽可能少的更改,并最大程度地减少错误。

所以我有一个Student类,我想重载构造函数,所以如果我进行反向链接,它就是这样。

 public class Student
{
    string name;
    int Id;

    public Student()
    {
    }
    public Student(string name)
    {
        this.name = name;
    }
    public Student(string name, int Id) :this(name)
    {
        this.Id = Id;
Run Code Online (Sandbox Code Playgroud)

但这显然是不好的,因为出于某种原因我们希望所有代码都在一个构造函数中?易于阅读?

    public Student() : this(null, 0)
    { }
    public Student(string name) : this(name, 0)
    { }
    public Student(string name, int Id) 
    {
        this.name = name;
        this.Id = Id;
    }
Run Code Online (Sandbox Code Playgroud)

如果我进行前向链接,那么如果我们添加一个新的字段(例如字符串major)会怎样?如果我进行正向链接,则会使用添加的字段创建一个新的重载构造函数。但是现在我必须更改所有其他构造函数以调用新的构造函数。如果我进行反向链接,则只需创建一个新的构造函数并调用先前的重载构造函数即可。

    public Student(string name, int Id, string major):this(name, Id)
    {
        this.major=major;
    } 
Run Code Online (Sandbox Code Playgroud)

这似乎更好地遵循了OOP,但是我的教科书中的所有示例都显示了正向链接,并且没有说为什么不应该使用反向链接。

如果我使用命名/可选参数,则更加简单。

    public Student(string name = null, …
Run Code Online (Sandbox Code Playgroud)

c# parameters constructor named chaining

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