小编fgu*_*len的帖子

Backbone.js在集合添加时触发两次渲染

在学习Backbone.js 时,我正在使用捆绑了最新版Backbone(0.9.2)的Todos示例应用程序.我的问题是,为什么应用程序设计为在向Todos集合添加模型时触发渲染事件两次?

如果我将此行放在TodoView的渲染功能中:

// Re-render the titles of the todo item.
render: function() {
  console.log("Rendering!");
  this.$el.html(this.template(this.model.toJSON()));
Run Code Online (Sandbox Code Playgroud)

然后"渲染!" 在控制台中出现两次.我理解这是因为视图将模型的change事件绑定到视图的渲染:

initialize: function() {
  this.model.bind('change', this.render, this);
Run Code Online (Sandbox Code Playgroud)

并且在addOne中调用render,它绑定到Todos的add事件:

addOne: function(todo) {
  var view = new TodoView({model: todo});
  this.$("#todo-list").append(view.render().el);
},
Run Code Online (Sandbox Code Playgroud)

但这是双重渲染设计的标准做法吗?看起来应该在创建(或进入DOM)时呈现视图,然后如果底层模型发生更改则再次呈现.在这种情况下,没有任何更改,但渲染被调用两次.

再一次,我只是学习Backbone,所以我可能会有一个基本的误解,导致我的困惑.

javascript backbone.js

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

Ruby,如何创建Rack :: Request进行测试?

我有一个库,可以Rack::Request在上面做一些事情.

我想从单元测试而不是功能测试中测试它.所以我必须自己创建一个Rack::Request实例,我该怎么做呢?

ruby unit-testing rack request

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

Ruby,如何引用Root命名空间?

当我有这样的模块时:

module MyModule
  class MyClass
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以访问/修改MyModule引用它:

MyModule.const_set("MY_CONSTANT", "value")
Run Code Online (Sandbox Code Playgroud)

但是Root命名空间呢,那个::?,我正在寻找类似的东西:

::.const_set("MY_CONSTANT", "value")
Run Code Online (Sandbox Code Playgroud)

const_set事情仅仅是一个例子,请不要试图解决这个具体的情况,但实际上在做参考的方式Root命名空间

ruby program-entry-point

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

如果我选择更宽的时间范围,石墨,数据点就会消失

如果我要求这些数据:

https://graphite.it.daliaresearch.com/render?from=-2hours&until=now&target=my.key&format=json
Run Code Online (Sandbox Code Playgroud)

除了其他数据点之外,我得到了这个:

[
  2867588,
  1398790800
]
Run Code Online (Sandbox Code Playgroud)

如果我要求这些数据:

https://graphite.it.daliaresearch.com/render?from=-10hours&until=now&target=my.key&format=json
Run Code Online (Sandbox Code Playgroud)

数据点看起来像这样:

[
  null,
  1398790800
]
Run Code Online (Sandbox Code Playgroud)

当我选择更宽的时间范围时,为什么这个数据点无效

更新

我看到,对于小于7小时的选定日期范围,数据点分辨率每10秒,当选择的日期范围是7小时或更大时,分辨率每1分钟转到一个数据点..并继续这个方向因为所选择的日期范围每10分钟变大一个数据点.

因此,当数据点的分辨率是每10秒数据存在时,当分辨率是每1分钟或更长时间,那么数据点没有值:/

我每1小时发送一个数据点,可能与分辨率配置冲突,我每小时只发送一个数据点

graphite

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

EmberJS,如何使用根路径导入文件?

model在这条道路上有这个:

/my-project/app/models/my-model.js
Run Code Online (Sandbox Code Playgroud)

我想route从这条路径中导入它:

/my-project/app/routes/battles/battle/combats/new.js
Run Code Online (Sandbox Code Playgroud)

导入句子如下所示:

import MyModel from '../../../../models/my-model';
Run Code Online (Sandbox Code Playgroud)

路径是疯了,我必须使用try和error系统来弄清楚它.此外,如果我想在另一个组件中导入相同的模型,我不能只复制和粘贴,因为此路径仅在特定路径中有效.出于同样的原因,如果我更改导入模型的组件的路径,我必须更新导入路径.

我想有相对于项目根的路径,如:

import MyModel from '/models/my-model';
Run Code Online (Sandbox Code Playgroud)

这可能吗?

javascript ember.js ember-cli ember.js-2

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

如何在同一个 <option> 元素中混合 RTL 和 LTR 文本方向?

我正在实现一个 RTL 接口。所有组件和文本都是 RTL,但数字是 LTR。

我使用<span dir="ltr">元素将 LTR 文本插入到主要的 RTL 文本中。

它适用于大多数情况,但不适用于<option>元素:

<div dir="rtl">
  <select>
    <option>One amount <span dir="ltr">15.000</span> coins</option>
    <option>Other amount <span dir="ltr">19?000</span> coins</option>
  </select>
</div>
Run Code Online (Sandbox Code Playgroud)

它不工作。

这里有一个 JSfiddle 可以玩:https ://jsfiddle.net/fguillen/2hngzv3d/

html css localization right-to-left left-to-right

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

Rails 和 active_storage:无法加载`Rails.config.active_storage.service`:(运行时错误)缺少“S3”的服务适配器

当所有配置都正确时,我在控制台中看到此错误

Cannot load `Rails.config.active_storage.service`: (RuntimeError) Missing service adapter for "S3"
Run Code Online (Sandbox Code Playgroud)

rails-activestorage

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

Rails 和 Active Storage,如何直接在创建调用上分配附件?

我有MyModel

has_one_attached :video
Run Code Online (Sandbox Code Playgroud)

我发现我可以这样做:

my_model = MyModel.create!()
my_model.video.attach(io: File.open("path/my_video.webm"), filename: "video.webm")
Run Code Online (Sandbox Code Playgroud)

并且它工作正常。

但我想知道是否有一种方法可以将附件分配到调用中,create()例如:

MyModel.create!(
  video: File.read("path/my_video.webm")
)
Run Code Online (Sandbox Code Playgroud)

如果我执行上述操作,我会看到此错误:

/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.1.4.1/lib/active_support/message_verifier.rb:176:in `verify': ActiveSupport::MessageVerifier::InvalidSignature (ActiveSupport::MessageVerifier::InvalidSignature)

我试过这个:

MyModel.create!(
  video: File.open("path/my_video.webm")
)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activestorage-6.1.4.1/lib/active_storage/attached/changes/create_one.rb:74:在`find_or_build_blob'中:找不到或构建blob:预期可附加,得到#File:/Users/fernando.guillen/Development/PlaycocolaBackend/test/fixtures/files/video.webm(ArgumentError)

ruby ruby-on-rails rails-activestorage

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

ActiveRecord,通过多态属性查找

有这个:

class Event < ActiveRecord::Base
  belongs_to :historizable, :polymorphic => true
end

user = User.create!
Run Code Online (Sandbox Code Playgroud)

我可以:

Event.create!(:historizable => user)
Run Code Online (Sandbox Code Playgroud)

但我不能:

Event.where(:historizable => user)
# Mysql2::Error: Unknown column 'events.historizable' in 'where clause'
Run Code Online (Sandbox Code Playgroud)

我必须这样做:

Event.where(:historizable_id => user.id, :historizable_type => user.class.name)
Run Code Online (Sandbox Code Playgroud)

更新

重现问题的代码:https://gist.github.com/fguillen/4732177#file-polymorphic_where_test-rb

ruby activerecord ruby-on-rails-3 active-record-query

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

Amazon SQS如何控制重试次数

我正在配置beanstalk工作者环境来处理周期性任务

当请求的URL没有响应状态时,200Elastic Beanstalk会将任务再次放入队列中.

如何配置号码或重试?

我知道解释什么地方隐藏在背后ErrorVisibilityTimeout,InactivityTimeout,Dead Letter Queues...但这些概念还没有在我的脑海低效增长的绿色.

例如,我只想配置最大重试次数0,因此尝试但不重试.

worker amazon-sqs amazon-web-services amazon-elastic-beanstalk

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