我在将JS测试集成到rails/angular应用程序时遇到了麻烦.特别是,我的测试设置在这个html文件中的{{handlebars}}的第8次和最后一次出现时很窒息,我无法弄清楚这种情况有什么特别之处.
问题错误来自_form.html.erb的第784 行:
<textarea class="figures_json col-lg-11 col-md-10 col-xs-9" readonly="readonly" name="dance[figures_json]" id="dance_figures_json">
{{2+2}}</textarea>
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
dm@red:~/contra$ rspec ./spec/features/dances/create_spec.rb:7
Run options: include {:locations=>{"./spec/features/dances/create_spec.rb"=>[7]}}
F
Failures:
1) Creating dances creates a new dance with non-javascript data
Failure/Error: JSON.parse figures_json
ActionView::Template::Error:
784: unexpected token at '{{2+2}}'
# ./app/models/dance.rb:10:in `figures'
# ./app/views/dances/_bodyshow.html.erb:6:in `_app_views_dances__bodyshow_html_erb__2235413439078114529_46217560'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:145:in `block in render'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:166:in `instrument'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:333:in `instrument'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:143:in `render'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/partial_renderer.rb:339:in `render_partial'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/partial_renderer.rb:310:in `block in render'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/abstract_renderer.rb:39:in `block in instrument'
# /home/dm/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in `block …Run Code Online (Sandbox Code Playgroud) 当尝试强制用户在对象中进行预定义的选择时,Angucomplete-alt对我很有用.
但是,如果我不想强迫用户使用其中一个对象,如果我希望用户能够输入自由文本并且仅将完成作为建议,那么我如何访问输入字段的文本?
例如,我有一个隐藏字段,用于整理Angucomplete-alt字段的字符串值以提交给后端数据库.像这样:
<input type="hidden" name="dance[start_type]"
ng-value="IS_THERE_A_SELECTION ? selectedStartType.originalObject.name : JUST_TELL_ME_THE_STRING_THEY_TYPED"/>
Run Code Online (Sandbox Code Playgroud)
我应该为IS_THERE_A_SELECTION和JUST_TELL_ME_THE_STRING_THEY_TYPED添加什么表达式?
我想在类对象上定义方法,这些方法基于类的祖先继承,实例方法的继承方式相同。有什么办法可以做到这一点?
这是行不通的:eql-方法专门化。考虑以下示例:
(defclass animal ()())
(defclass bird (animal)())
(defclass woodpecker (bird)())
(defmethod wings-p ((animal-class (eql (find-class 'animal)))) nil)
(defmethod wings-p ((bird-class (eql (find-class 'bird)))) t)
Run Code Online (Sandbox Code Playgroud)
调用会(wings-p (find-class 'woodpecker))生成一个no-method-error,您会看到原因- 对于任何方法专门化器,类woodpecker显然都不eql是。
我想定义“方法” bird,animal以便当我调用wings-p时(find-class woodpecker),wings-p返回t。
我觉得这几乎是所有其他OO系统的标准功能,但是我不记得如何使用CLOS做到这一点。