Я использую Rails 4.2 с angularjs в текущем приложении.Ответ в действии контроллера Rails генерируется, как показано ниже, и отправляется как Ответ API.Этот API используется Angular для отображения содержимого соответственно.
Ответ от контроллера
{
"switch": {},
"collections": {
"valid_numbers": 1..12,
}}
Код Angularjs, который работает с этими данными ответа.
$scope.PortFilter = function (data) {
return $scope.data.collections.valid_numbers.indexOf(data.PortNumber) > -1;
};
HTML-код от Rails
<tr ng-repeat="port in data.switch.ports_attributes| filter:PortFilter" display_port_number="{{port.display_port_number}}">
<td style="vertical-align: middle" nowrap="nowrap">
{{port.display_port_number}}
</td>
Как видно из кода firebug, ответ от API в браузере содержит «valid_numbers»: 1..12, а не массив целых чисел от 1 до12. Ниже отклик работает правильно с жестко закодированным, как видно из фрагмента ниже, значения поступают в виде массива.
{
"switch": {},
"collections": {
"valid_numbers": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
}}