我有一個來自api調用的json數據,就像下面的procution_volumes數組一樣。
"production_volumes = [{period:'2014Q4', volume:'200', comment:'nothing'},{period:'2014Q2', volume:'300', comment:'something'},{period:'2014Q1', volume:'500', comment:'search'}]"
我想這樣以表格形式顯示用戶可以更新數據。表代碼如下
<table>
<tbody>
<tr>
<th><strong>Year</strong></th>
<th><strong>Quarter</strong></th>
<th><strong>Volume</strong></th>
<th><strong>Comment</strong></th>
<th class="text-right"><strong>Delete</strong></th>
</tr>
<tr ng-repeat="production in production_volumes">
<td class="vertical-align-top">
<select style="min-width: 140px;" class="select_field form-control">
<option ng-repeat="period_year in period_years" value="{{period_year}}" ng-model="production.period.split('Q')[0]" ng-selected="production.period.indexOf(production.period)!=-1">{{period.year}}</option>
</select>
</td>
<td class="vertical-align-top">
<select style="min-width: 140px;" class="select_field form-control">
<option ng-repeat="period_quater in period_quaters" value="{{period_quater}}" ng-model="production.period.split('Q')" ng-selected="production.period.indexOf('Q'+period_year)!=-1">{{production.period.split("Q")[1]}}</option>
</select>
</td>
<td class="vertical-align-top">
<input type="text" class="input_field form-control" ng-maxlength="50" ng-pattern="" ng-model="production.volume">
</td>
<td class="vertical-align-top">
<input type="text" class="input_field form-control" ng-maxlength="50" ng-pattern="" ng-model="production.comment">
</td>
<td class="text-center" style="vertical-align: middle;">
<input type="checkbox" class="">
</td>
</tr>
<tr ng-repeat="n in [].constructor(12-project_details.production_volumes.length) track by $index">
<td class="vertical-align-top">
<select style="min-width: 140px;" class="select_field form-control" ng-model="">
<option ng-repeat="period_year in period_years" value="{{period_year}}">{{period_year}}</option>
</select>
</td>
<td class="vertical-align-top">
<select style="min-width: 140px;" class="select_field form-control" ng-model="">
<option ng-repeat="period_quater in period_quaters" value="{{period_quater}}">{{period_quater}}</option>
</select>
</td>
<td class="vertical-align-top">
<input type="text" class="input_field form-control" ng-maxlength="50">
</td>
<td class="vertical-align-top">
<input type="text" class="input_field form-control" ng-maxlength="50">
</td>
<td class="text-center" style="vertical-align: middle;">
<input type="checkbox" class="">
</td>
</tr>
</tbody>
</table>
在同一個控制器js文件,我無法綁定$ scope.production.volume和$ scope.production.comment。它給我錯誤的$ scope.production沒有定義。當我使用不同的ng模型而不是production.volume時,那麼數據不會顯示在視圖中。什麼是理想的解決方案,我可以顯示來自json的數據並將任何更新的數據發送回json。
小提琴鏈接,供您參考http://jsfiddle.net/reachsampathreddy/1gxgsrqm/
這樣我就可以顯示數組的數據,但無法綁定到範圍,以便在用戶提交時發回數據。 –
爲什麼不呢? Angular會跟蹤它來自哪裏並在模型中更新它?我添加了一個提交按鈕,並在其中放置了一個調試器行,並檢查了範圍並更新了值。 –