我手上有一个奇怪的案子。我input[type="number"]
在我的 Angular 应用程序中使用 number-polyfill 。现在,问题在于它没有考虑到 Angularjs 的处理方式。
就像,如果我以编程方式递增/递减输入值,则与输入关联的 ngModel 不会获得更新的值。
我已经通过编写自定义指令并将模型传递到 pollyfill 解决了这个问题
angular.module('appModule').
directive('type', ['$parse', '$timeout', function($parse, $timeout) {
restrict: 'A',
require: '?ngModel',
link: function($scope, iElement, iAttrs, ngModel) {
...
if iAttrs.type is 'number'
iElement.inputNumber(ngModel) // <-- THIS LINE
...
}
}
在 polyfill 代码中,我修改了这个:
increment = function(elem) {
...
if (model != null) {
model.$setViewValue(newVal);
}
...
}
效果很好。现在,问题是即使在更新模型的值之后,关联的表单也不会变脏。在我的代码中,不可能将表单作为参数传递给这个 polyfill。
我尝试使用model.$dirty = true
,但这不起作用。
还有什么办法吗?