Angular.js integration with Ruby On Rails Forms
Angular.js integration with Ruby On Rails Forms
使用角度.js通常像ng-click或ng-model这样的项目直接写在html表单元素中,就像这样。
<input type="text" ng-model="name">
我将如何使用导轨做到这一点? 由于rails使用嵌入式Ruby并生成html。
<%= form_for(@user) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
如何将 ng 模型添加到 <%= f.text_field :name %> ?
理想情况下,您不希望混合嵌入式红宝石插值和 Angular 插值。最好让 ruby 异步地将 JSON 提供给 Angular,并让 Angular 负责在客户端填写数据。
试试这个,当它是一个连字符分隔的单词时,你需要放入哈希表示法。
f.text_field :name, :ng => {:model => "name"}
我正在使用 AngularJS 指令和 Rails 4 以使 bootstrap-datepicker jquery 插件在 Rails 4 erb 模板上运行,我在text_field_tag
中使用的代码如下:
<%= text_field_tag(:start_day, nil, class: 'form-control', datepicker: 'datepicker') %>
重要的是要注意,这适用于 AngularJS 指令,您在 DOM 上获得的代码如下:
<input class="form-control" datepicker="datepicker" type="text">
我通过以下方式使用该指令:
timeAdminCal.directive('datepicker', function(){
return {
restrict: 'A',
link: function ($scope, $element) {
$element.datepicker({
format: 'd/m/yyyy',
autoclose: true,
todayHighlight: true
});
}
}
});
请注意,根据 AngularJS 指令文档,您可以restrict
类名,因此您可以在text_field_tag
上使用任何类名,它也可以工作。
timeAdminCal.directive('datepicker', function(){
return {
restrict: 'C', // Bind DOM element by class name 'datepicker'
link: function ($scope, $element) {
$element.datepicker({
format: 'd/m/yyyy',
autoclose: true,
todayHighlight: true
});
}
}
});
我有用的(但它会禁用angularjs的错误消息("请输入名称"),即 required: "required"
):
<%= f.input :id, as: :select, label: false, prompt: 'Select a selection', input_html: { "ng-model" => ""} %>
我认为您可以使用 :html 选项来设置任何元素属性。虽然没有尝试过棱角.js特殊属性;-)
f.text_field :name, :html => { :ng-model => "name" }
在我目前的项目中,我必须开始将静态模板转换为角度页面,我所做的是在模板内渲染 jbuilder 视图并将其放入 ng-init 中。
如果屏幕成为单页应用程序的一部分,我只需删除该呈现并向 api 添加查询即可加载该数据。这就是Twitter的做法,它既简单又有效。
如果使用 ng-model,这意味着会覆盖对象的form_for行为。例如,如果您有
= form_for :user do |f|
= f.text_field :username, 'ng-model': user.username
这意味着文本字段不会呈现从 rails 控制器传递的值。您需要将用户名的值添加到角度控制器内的角度模型。
- Ruby on Rails javascript getting truncated
- 在ruby on rails中使用jquery getJSON获取数据
- Ruby On Rails应用程序与angularJS关于AJAX
- Angular JS/Rube-on-Rails-控制器未识别错误
- ruby on rails:用于不同页面的选项卡
- Ruby On Rails Ajax 提交提交两次
- Ruby on Rails - 引导旋转木马按钮不起作用
- 按索引迭代数组时,单击提交按钮Ruby on Rails
- 如何将.js从视图移动到单独的资产 - Ruby On Rails
- 如何在Ruby on Rails中集成Arbor.js
- geolocation with javascript and ruby on rails
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- Window.onload 未被调用 [Ruby on Rails] [Vanilla Javascript]
- 如何在Ruby on Rails会话过期时重新加载或刷新页面
- 重命名上传的文件Ruby On Rails
- Ruby on Rails - grouped_collection_select error
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- Ruby on rails-更新ajax的PUT方法
- Heroku Ruby on Rails应用程序don't更新公共/资产目录中的未消化资产
- Ruby on rails javascript没有;无法正确加载(HTML5模板)