微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – 在rails中为simple_form添加angular指令会破坏集合输入的选定选项

不确定是否有解决方法,我做错了,或者这是简单形式或角度之间的碰撞,但是:

.field
  = f.input :role,collection: roles.map(&:name),selected: user.role.try(:name),include_blank: 'Select',required: true,input_html: { "ng-model" => "role" }

渲染(看起来正确):

<select ng-model="role" class="select required" name="user[role]" id="user_role">
      <option value="">Select</option>
      <option value="system">system</option>
      <option selected="selected" value="fcm">fcm</option>
      <option value="regulatory">regulatory</option>
      <option value="operations">operations</option>
      <option value="help_desk">help_desk</option>
     </select>

但是所选值是’Select’的include_blank值.是的,角色是在用户上设置的.

解决方法

它之所以这样做是因为角度模型的工作方式,需要对此有所了解.基本上,ruby生成选择正确选择选择框的选定选项.

但是,一旦加载角度并在此选择上看到ng-model,它会将当前选定的选项设置为模型的值(在您的情况下为角色).

因此,如果要为此选择设置角度模型,则需要设置该模型的初始值.

请尝试以下方法

.field
= f.input :role,input_html: { "ng-model" => "role","ng-init" => "role = #{user.role.try(:name)}" }

请注意,已完全删除所选选项,因为这将由AngulAR模型控制,该模型使用ruby字符串插值初始化为该值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐