我有一个基本的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