在rails模型和angularjs控制器之间共享一个常量变量

share a constant variable between rails model and angularjs controllers

本文关键字:一个 变量 常量 共享 模型 rails angularjs 之间 控制器      更新时间:2023-09-26

我正在寻找一个很酷的想法,如何在模型(ruby on rails)和控制器(angularjs)之间共享一个常量值。在开始使用angular之前,我曾经在模型的常量变量中保存一些值,例如:

class MyModel << ActiveRecord::Base
  attr_accessor :sample1
  OPTIONAL_VALUES = ['val1', 'val2', 'val3', 'val4', 'val5']
end

这样,我可以在我的视图(例如,为了填充一个选择标签)和我的模型验证中使用OPTIONAL_VALUES(为了验证sample1不会得到不在列表中的任何值)。

但是现在,我的客户端和我的视图与"rails端"分开,并管理我的AngularJS,我仍然需要使用相同的OPTIONAL_VALUES数组。我不想重复代码,你知道我怎么才能实现它吗?

您可以使用ng-init像这样传递它们:

<div ng-controller="ctrl" ng-init="inti('<%= stringify MyModel.OPTIONAL_VALUES with rails here %>')"/>

然后在控制器中创建一个init方法,比如

function init(ov) {
     this.optionalValues = JSON.parse(ov);
}