разделить постоянную переменную между моделью рельсов и контроллерами angularjs

0

Я ищу отличную идею о том, как делиться постоянным значением между моделью (рубина на рельсах) и контроллером (angularjs). Прежде чем начать использовать углы, я использовал для хранения некоторых значений в постоянной переменной моих моделей, например:

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

Таким образом, я мог бы использовать OPTIONAL_VALUES в обоих моих представлениях (например, для заполнения тега select) и моей проверки модели (чтобы проверить, что sample1 не получит никакого значения, которого нет в списке).

Но теперь моя клиентская сторона и мои взгляды отделены от "стороны рельсов" и управляют моим AngularJS, и мне все еще нужно использовать тот же массив OPTIONAL_VALUES. Я не хочу повторять код, не знаете ли вы, как я могу это сделать?

1 ответ

0
Лучший ответ

Вы можете использовать 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);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню