我有一个Angular 1.4.7 ui网格3.0.7,它包括以下列定义:
{
displayName: 'Qty',
name: 'Quantity',
width: '10%',
type: 'number',
headerCellClass: 'partsListGridHeader',
cellTemplate: '<div ng-if="!row.groupHeader"><input id="{{row.entity.PartNumber}}" type="number" ng-change="vm.SelectedProduct.IsConfigurationSaved = false;" size="4" ng-maxlength="4" class="partsListQuantity" ng-class="{ 'autoConfigured': row.entity.IsAutoConfigured }" style="width:50px;" min="{{row.entity.MinValue}}" max="{{row.entity.MaxValue}}" step="1" ng-pattern="/^[0-9]*$/" ng-model="row.entity.Quantity" ng-readonly="row.entity.IsAutoConfigured" /></div>',
aggregationType: uiGridConstants.aggregationTypes.sum,
}
我指望ng-change指令重置一个通用的dirty属性,该属性的范围比Angular的form.$dirty小。但是,由于性能原因,单元格模板不支持ng-change。
我应该用什么代替?
您可以在Plunker 上看到我的代码的简化版本
在考虑了Ryan Clark关于如何在AngularJS如何实现脏检查以及如何自己复制脏检查中创建自定义侦听器的出色建议后,我决定走捷径,使用Angular的form.$dirty属性,并接受它的不精确性。