首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby - shoes - edit_line函数调用

ruby - shoes - edit_line函数调用
EN

Stack Overflow用户
提问于 2009-06-11 08:24:59
回答 3查看 1.3K关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
Shoes.app do

  data = [1,2,3,4] # could be also more

  data.each { |i|
    edit_line ("foo"){ puts i}
  }

end

当edit_line字段中的值(foo)更改时,我在终端1、2、3或4中看到。但我需要每个edit_line字段中的值(.txt)。我该如何引用它呢?问题是数据是动态的,可以有n个条目。

在php中有类似$$var的东西,在ruby中有什么东西吗?也许这能帮上忙。

EN

回答 3

Stack Overflow用户

发布于 2009-06-12 13:28:49

如果只想在edit_line更改时查看数据,可以使用change方法和text方法:

代码语言:javascript
复制
Shoes.app do

  data = [1,2,3,4] # could be also more

  data.each do |i|
    edit_line('foo').change do |e| { puts "#Edit Line #{i} Changed: #{e.text}" }
  end
end

由于edit_line方法的缺省块具有相同的功能,因此可以将其简化为:

代码语言:javascript
复制
Shoes.app do

  data = [1,2,3,4] # could be also more

  data.each do |i|
    edit_line 'foo' do |e| { puts "#Edit Line #{i} Changed: #{e.text}" }
  end
end

另外,请注意,对于多线块,首选样式是使用do/end而不是{}

票数 2
EN

Stack Overflow用户

发布于 2009-06-11 08:52:35

一位朋友向我指出:

代码语言:javascript
复制
data.each_index { |i| data[i] = edit_line() { data[i].text } }
票数 0
EN

Stack Overflow用户

发布于 2009-06-12 00:34:13

因为您需要在那里存储索引和数据,所以需要#each_with_index。我从来没有用过鞋子,所以我不能帮上忙,但#each_with_index是这样工作的:

代码语言:javascript
复制
data = ["cat", "bat", "rat"]
data.each_with_index {|i, d| print "#{i} => #{d} "}

这将打印:0 => cat 1 => bat 2 => rat

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/979952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档