小编Nat*_*Nat的帖子

如何从ruby实例方法返回一个新的self实例

我有一个模块,它存在于两个相似的类中.模块中包含的一些方法供两个类使用相同的方法返回一个新实例.

但是如何在模块中编码应该调用包含类的构造函数?

一个简化的例子:

module Point3D
  def initialize(x,y,z)
    @x = x
    @y = y
    @z = z
  end

  def * (scalar)
    <myclass>.new(@x * scalar, @y * scalar, @z * scalar)
  end
end

class Vertex
  include Point3D
end

class Vector
  include Point3D
end
Run Code Online (Sandbox Code Playgroud)

那么在*如何调用构造函数的定义中,在Vertex类的上下文中它返回了一个新的Vertex,并且在Vector类的上下文中它返回了一个新的Vector,而没有在每个类中重新声明所有这些方法?

ruby

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

如何嵌入带有任意行号的ace编辑器

我想嵌入代码片段到一个页面,王牌编辑为证明这里.

但是,由于要从较大的文件中提取这些片段,我希望装订线中的行号反映代码的原始行号.换句话说,我希望能够为嵌入式实例指定它应该分配给第一行的数字和数量.

可以配置(或黑客)Ace编辑器以这种方式运行吗?

ace-editor

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

使用角度路由和往返路由

我正在开发一个Django应用程序,它在某些页面中大量使用Angular,例如在domain.com/myAngularApp

在角度页面中,我使用Angular路由在该页面内的不同视图/状态之间导航.但是在整个网站上都有导航链接,这些链接需要导致对Django的往返请求.但是,所有页面都包含相同的已编译的javascript文件,其中包含Angular路由声明.

所以我的问题是:如何让Angular管理自己的路由,并在位置发生变化时(主要是通过点击页面上的链接)转移到未明确告知其拥有的路径,即到域外的不同子目录.

我的路由声明看起来像:

myApp.config( function($locationProvider, $routeProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider.when('/myAngularApp/', {
    templateURL: 'template1.html'
  });
  $routeProvider.when('/myAngularApp/stuff', {
    templateURL: 'template12.html'
  });
  $routeProvider.otherwise({redirectTo:  <not sure what to do here...>  });
})
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西:

$routeProvider.otherwise({redirectTo: function(a1,r,a3){ window.location.href = r }})
Run Code Online (Sandbox Code Playgroud)

但这会使页面在任何不匹配的路由上无休止地刷新.

抛弃其他声明似乎使得在直接访问时不可能留下具有不匹配路由的页面...不明白为什么?

必须有可能做我想做的事吗?

url-routing angularjs

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

从nodejs有效地序列化(和读取)int数组

我正在考虑在nodejs中构建一个应用程序,它需要流式传输包含整数数组的大(> GB)文件.最重要的是,阵列需要以最佳方式进行序列化,因此不是基于ascii,理想情况下使用8位用于较小的整数(这将是绝大多数数据),但仍然能够代表更大的数字.

这个问题可能不仅仅是关于nodejs,而是如何在nodejs中解决这个问题?是否有现成的流式文件解决方案,其中包含来自磁盘的自定义字节编码?或者更好,整数数组?

理想情况下,即使使用ssd,流的每个部分的解码也应该是磁盘绑定而不是cpu绑定.

javascript arrays serialization node.js node.js-stream

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

AngularJS过滤器触发无限$ digest循环

我想使用过滤器表达式values | filter:value1来隐藏或显示div,where valuesvalueare都在包含指令的link函数的范围内声明.

这可以按预期工作,除了它不断触发无限的摘要循环错误.

请参阅此jsbin进行演示:http://jsbin.com/nujineci/2/edit

我究竟做错了什么?当过滤器没有更新模型时,为什么会出现这些错误?

angularjs angularjs-directive angularjs-filter

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

从javascript中的对象方法访问对象属性

我有类似的东西

var foo = function(arg){
  var something = {
    myPropVal: "the code",
    myMethodProp: function(bla) {
      // do stuff with mypropval here
      alert(this) // => DOMWindow
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?我可以从 myMethodProp 中访问 myPropVal 的内容吗?

javascript

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

使用ng-submit提交表单并触发同步发布请求

我有一个表单,我想在用户点击提交时触发验证.如果验证失败,则显示适当的错误消息.这很有用.

但是,如果验证通过,我希望表单提交具有完整页面重新加载的同步POST请求,就像操作和方法参数设置为正常一样.

如何从AngularJS范围的ng-submit函数触发正常的post动作(不是AJAX)?

我的形式当然看起来基本如下:

<form id="myForm" name="myForm" ng-submit="formAction(this, models)">
  ...
 <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的方法是用另一个隐藏的形式来反映表单的内容,提交那个,但必须有更好的方法!

要澄清:如果验证通过,我需要表单提交,基本上表现得像普通的同步帖子表单提交,它将用户放在服务器从post请求返回的页面上.

forms angularjs ng-submit

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

为什么我在读取文本文件时出现"UTF-8中的无效字节序列"错误?

我正在编写一个Ruby脚本来处理一个大文本文件,并继续得到奇怪的编码错误.情况如下:

input_data = File.new(in_path, 'r').read
p input_data.encoding.name   #   UTF-8 
break_char = "\r".encode("UTF-8")
p break_char # "\r"
p break_char.encoding.name # "UTF-8" 
input_data.split(",".encode("UTF-8"))
p Encoding.compatible?(input_data, break_char) # # Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)

这会产生错误 :in 'split': invalid byte sequence in UTF-8 (ArgumentError)

我阅读http://blog.grayproductions.net/articles/ruby_19s_string并查看其他解决方案显然是同样的问题,但是当我相信我正在控制编码时仍然无法解决为什么会发生这种情况.

我在OSX上使用ruby 1.9.2

ruby string encoding

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

将未知数量的参数传递给ruby函数

我正在编写一个方法来将另一个方法包装为类的一部分.它需要接受并传递任意数量的参数.

就像是...

def do(*things)
  old_method(things)
end
Run Code Online (Sandbox Code Playgroud)

除了这不起作用,因为old_method需要作为单独的参数而不是作为数组传递thing数组的内容.

我只是想不出一种在ruby语法中做到这一点的方法......

ruby syntax

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

来自红宝石哈希的奇怪行为

我从红宝石的哈希中得到一些相当意想不到的行为

这是问题的简化演示

estdata = ["a","b","c"]
outputHash = Hash.new({:IDs => [], :count => 0})

estdata.each do |x|
  outputHash[x][:IDs] << x
  outputHash[x][:count] +=1
end

p outputHash # => {}
p outputHash["a"] # => {:count=>3, :IDs=>["a", "b", "c"]}
Run Code Online (Sandbox Code Playgroud)

首先,为什么第一个p输出空哈希时,显然outputHash不为空?

其次,更令我沮丧和困惑的是,为什么看起来每个键都指向一个值(包含:count和:IDs键的哈希)以及我如何解决这个问题?

ruby hash

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