小编Eug*_*Zol的帖子

在reactJS中,如何将文本复制到剪贴板?

我正在使用ReactJS,当用户点击链接时,我想将一些文本复制到剪贴板.

我使用的是Chrome 52,我不需要支持任何其他浏览器.

我不明白为什么这段代码不会导致数据被复制到剪贴板.(代码片段的来源是Reddit帖子).

我做错了吗?任何人都可以建议使用reactjs实现复制到剪贴板的"正确"方法吗?

copyToClipboard = (text) => {
  console.log('text', text)
  var textField = document.createElement('textarea')
  textField.innerText = text
  document.body.appendChild(textField)
  textField.select()
  document.execCommand('copy')
  textField.remove()
}
Run Code Online (Sandbox Code Playgroud)

javascript clipboard reactjs

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

Mongoid:'update_attribute'与[models,...] vs与[model_ids,...]

我正在写一些测试,但我遇到了一些我想要了解的东西.

调用时有什么区别:

.update_attributes(:group_ids, [group1.id, group2.id])
Run Code Online (Sandbox Code Playgroud)

VS

.update_attributes(:groups, [group1, group2])
Run Code Online (Sandbox Code Playgroud)

这两个模型有问题:

group.rb

class Group
  include Mongoid::Document
  has_and_belongs_to_many :users, class_name: "Users", inverse_of: :groups
end
Run Code Online (Sandbox Code Playgroud)

user.rb

class User
  include Mongoid::Document
  has_and_belongs_to_many :groups, class_name: "Group", inverse_of: :users
end
Run Code Online (Sandbox Code Playgroud)

有问题的测试代码:

g1 = create(:group)
u1 = create(:user, groups: [g1])
g1.update_attribute(:users, [u1])
# at this point all the associations look good
u1.update_attribute(:group_ids, [g1.id])
# associations looks good on both sides when i do u1.reload and g1.reload
u1.update_attribute(:groups, [g1])
# g1.reload, this is when g1.users is empty and …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails mongoid

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

搜查宝石导轨和多选

我正在为我的 Rails 应用程序使用 ransack gem,并且在多选方面遇到问题。我有一个工作和一个公司模型,一个公司有很多个工作,一个工作属于一个公司。我想对职位进行搜索,以便人们可以看到特定公司的职位,我做了一些研究,显然这应该在搜索表单中起作用:

= search_form_for @q do |f|
  = f.collection_select :company_name_cont, Company.all, :id, :name, {:multiple => true}, class: 'chosen-it'
  = f.submit "search"
Run Code Online (Sandbox Code Playgroud)

因此,在视图中,我得到了列表(从所选的 gem 中自动完成),但是当我单击搜索时,它不返回任何结果,并且我无法选择多个公司。

但是,当我使用搜索字段时,如下所示:

= f.search_field :company_name_cont
Run Code Online (Sandbox Code Playgroud)

搜索有效。

你们能帮我吗?

多谢

ruby search ruby-on-rails ransack jquery-chosen

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

Prawn:将文本中间锚定到给定点

Prawn有height_of_formatted方法来确定格式化文本的高度,因此当需要将其中间垂直对齐到某个锚点时,可以计算其左上角坐标.

但是没有width_of_formatted办法.

我正在绘制图形,我需要将文本(点标签)置于某个点(点本身)的正中方.所以我知道文本的中间部分有点的x坐标.

如何获得文本开头的x坐标(所以我可以提供它draw_text和其他渲染方法)?

ruby ruby-on-rails prawn

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

Deflate压缩块的结构

理解Deflate算法(RFC 1951)时遇到了麻烦.

TL; DR如何解析Deflate压缩块4be4 0200

我创建了一个带有字母和换行符的文件a\n,然后运行gzip a.txt.结果文件a.txt.gz:

1f8b 0808 fe8b eb55 0003 612e 7478 7400

4be4 0200

07a1 eadd 0200 0000
Run Code Online (Sandbox Code Playgroud)

我知道第一行是带有附加信息的标题,最后一行是CRC32加上输入大小(RFC 1951).这两个给我带来了麻烦.

但是我如何解释压缩块本身(中间线)?

这是它的十六进制和二进制表示:

4be4 0200

0100 1011
1110 0100
0000 0010
0000 0000
Run Code Online (Sandbox Code Playgroud)

据我了解,不知何故这些:

每个压缩数据块都以3个包含以下数据的标头位开头:

  • 第一位BFINAL
  • 接下来的2位BTYPE

......实际上是在第一个字节结束时结束:0100 1 011.(我将跳过这个问题,为什么有人会称之为"标题"的东西实际上是其他东西的尾巴.)

RFC包含的东西,据我所知,应该是对此的解释:

  • 数据元素按字节中的位数增加的顺序打包成字节,即从字节的最低有效位开始.
  • 除了霍夫曼码之外的数据元素从数据元素的最低有效位开始打包.
  • 霍夫曼代码从代码的最高位开始打包.

换句话说,如果要将压缩数据打印出来作为一个字节序列,从右边距的第一个字节开始, 然后向左移动,左边每个字节的最重要位像往常一样,将能够从右到左解析结果,其中固定宽度元素在正确的MSB到LSB顺序中,而霍夫曼代码以位反转顺序(即,相对LSB位置中的代码的第一位) .

但遗憾的是我不明白这个解释.

回到我的数据.好的,所以设置了BFINAL,而BTYPE是什么?10或01?

如何解释该压缩块中的其余数据?

unix assembly gzip bit-manipulation deflate

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

Firefox无法连接到本地服务器子域

我正在使用laravel应用程序,我遇到Firefox和Safari浏览器的问题,当我需要访问我的带有子域的网络应用程序时,例如sub.localhost/myapp/public 我看到 服务器未找到 虽然那个歌剧和Chrome与我合作很好

有什么建议 ?

safari firefox laravel laravel-5

2
推荐指数
4
解决办法
3631
查看次数

小直(Yahtzee)算法

我已经创建了一个工作的javascript函数来检查一个小数字的5个数字的数组,在我正在制作的Yahtzee游戏中.我已经对它进行了测试,并且我确信它可以在100%的时间内正常工作,但它也可能是有效率方面有史以来最差的算法.这是它的样子:

function calcSmstraight() {
        var sum = 0;
        var r = new Array();
        var r2 = new Array();
        var counter = 0;
        var temp;
        var bool = false;
        var bool2 = false;
        r[0] = document.getElementById('setKeep1').value;
        r[1] = document.getElementById('setKeep2').value;
        r[2] = document.getElementById('setKeep3').value;
        r[3] = document.getElementById('setKeep4').value;
        r[4] = document.getElementById('setKeep5').value;

        // Move non-duplicates to new array
        r2[0] = r[0];
        for(var i=0; i<r.length; i++) {
            for(var j=0; j<r2.length; j++) {
                if(r[i] == r2[j]) {
                    bool2 = true;   // Already in new list
                }
            } …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

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

Rails:提取和编辑特定宝石的源代码

如何提取特定gem的源代码,以便可以在本地编辑它?要把它添加到我的Rails应用程序文件夹中吗?

我需要它能够更改gem的代码.

ruby ruby-on-rails

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

Ruby:检测Array中转折点的最优雅方法

我们来看以下数组:

[1, 4, 5, 3, 1, 4, 6, 5, 4]
Run Code Online (Sandbox Code Playgroud)

它具有以下转折点(当上升变化为下降时,反之亦然):

  • 5(索引2)
  • 1(索引4)
  • 6(索引6)

使任务更通用:

  • 有一个数组 a = [a1, a2, ...]
  • 有功能p(x,y) -> z,这里zComparable
  • 如何获得的所有元素 ∈一个(0 <I <则为a.length-1)其中p(一个I-1 ,一个)!= P(A ,一个I + 1)

我想写一些类似的东西:

a.detect_edges{|prev, n| prev >= n} # => [[5,2], [1, 4], [6,6]]
Run Code Online (Sandbox Code Playgroud)

用各自的指数获得转折点的最优雅方法是什么?这是我的代码,从美学的角度来看,我不满意:

class Array
  def detect_edges(&blk)
    return nil if self.length < 2
    prev = blk.call(self[0], self[1])
    result = []
    self[0..-2].each_with_index do |elem, i|
      current …
Run Code Online (Sandbox Code Playgroud)

ruby arrays

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