如何使用其他方法全局扩展原生Angular FormController?
例如,我希望我的表单有一个额外的方法setNew()
(类似于已经存在的$setPristine()
等)。现在我正在每个控制器中执行此操作,但我希望整个应用程序都可以使用它,而不是在整个地方声明它。
答案 0 :(得分:2)
您可以通过定义具有相同名称的其他指令来定义指令的其他行为。因此,您似乎可以执行this:
angular.module('app', [])
.directive('ngForm', formControllerDecorator)
.directive('form', formControllerDecorator);
function formControllerDecorator () {
return {
require: 'form',
link: function ($scope, $element, $attrs, formCtrl) {
formCtrl.setNew = function () {
// ...
};
}
};
}
在这种情况下,您需要声明两个指令,因为ngForm
实际上是form
的别名。