我的应用程序是在RoR中构建的,有两种编辑模式:普通模式和高级模式。我正在向AngularJs引导普通视图,用户可以在其中编辑某些字段。在这个视图中,我有一个包含七列的表,这些列中的每一列都接收并向json对象传递数据。这个视图有一个表格,在第一行我用ng-repeat使用Angular的limitTo过滤器填充前七行的数据。
到目前为止,一切正常,双向数据绑定就像魅力一样。问题来自其中一个列:一个整数的下拉列表从1到10,让我们称这个列为“行顺序”。问题在于:尽管模型对于所有其他行都是正确的(因此这些行按预期工作:从高级视图获取数据,或者根据用户接受新值并将数据存储在json对象中)在这个下拉列表的情况下,事情就不会起作用,因为它只显示一个空槽(数字前面的第一个),当我选择一个数字时,我得到422错误。我还需要添加到控制器中还有什么?
正如我所说,其他行遵循相同的系列模型。*一切正常。下面:表格单元格和控制器。
<td ng-controller="rowOrderCtrl" >
<select class="form-control" ng-model="series.row_order" id="chart_data_series_attributes_{{$index}}_row_order" name="chart[data_series_attributes][{{$index}}][row_order]" ng-change="updateChart()" ng-options="row.value as row.key for row in rowOrder">
</select>
</td>
'use strict';
angular.module('myApp').controller('rowOrderCtrl', function($scope) {
$scope.rowOrder = [
{ key: 1, value: 1 },
{ key: 2, value: 2 },
{ key: 3, value: 3 },
{ key: 4, value: 4 },
{ key: 5, value: 5 },
{ key: 6, value: 6 },
{ key: 7, value: 7 },
{ key: 8, value: 8 },
{ key: 9, value: 9 },
{ key: 10, value: 10 }
];
});
def create_chart_data_series(chart)
((current_upper)..10).each {|counter|
# charts.data_series << DataSeries.build(:row_order => counter)
chart.data_series.build(:row_order => counter)
}
end