我有一個基本的crud應用程序,並且我隱藏了表中的列以顯示用戶想要查看的輸入。我設法通過將ng-model
綁定到表列並將相同模型綁定到複選框來顯示/隱藏輸入,因此在複選框被選中時隱藏。AngularJS將模型綁定到ngRepeat(並評估它)
因爲我有很多數據,我不想在我的模板中保留輸入,所以我決定改爲ng-repeat
。
赫雷什我的控制器:
// simplified for this Q
$scope.columns = [
{ name: '#ID', checked: false, model: 'checkedId' },
{ name: 'Container', checked: false, model: 'checkedContainer' },
{ name: 'Type', checked: true, model: 'checkedType' }
];
這是在我的HTML(它被呈現前):
<label ng-repeat="col in columns">
<input type="checkbox" name="cols[]" value="{{col.name}}"
ng-checked="col.checked" ng-model="col.model"><span>{{col.name}}</span>
</label>
呈現的HTML看起來像這樣:(用於第二項陣列中的[陣列插槽1])
<label ng-repeat="col in columns" class="ng-scope">
<input type="checkbox" name="cols[]" value="Container"
ng-checked="col.checked"
ng-model="col.model" class="ng-pristine ng-valid">
<span class="ng-binding">Container</span>
</label>
我隱藏這樣的元素:
<input type="checkbox" ng-model="checkedContainer"><span>checkedId</span>
即該元件要隱藏看起來像這樣(另一中繼器)
<td class="check-element" ng-hide="checkedContainer">{{ c.container }}</td>
所以毫克模型綁定的列,並且,如果我手動插入輸入像上面,它的工作原理。但是,當循環它沒有。我認識到問題在於循環。這樣模型就不會被評估,但在html中保持「col-model」。有沒有辦法將模型評估到$scope.columns
陣列中的相應模型?
基本上我想我的$scope.columns.model
被評估爲它所屬的模型。我設法將改變mg-model的值綁定到ng-bind,但這不適用於數據綁定,因爲我瞭解它的唯一方法。
哇!那很快!非常感謝先生!這完美的作品! – stormpat
@PatrikStorm歡迎您,看看我的更新 – Cherniv
好的,再次感謝!我現在使用$父範圍。 – stormpat