Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 向角度方向控制器(例如FormController)添加属性_Angularjs - Fatal编程技术网

Angularjs 向角度方向控制器(例如FormController)添加属性

Angularjs 向角度方向控制器(例如FormController)添加属性,angularjs,Angularjs,如何使用其他方法全局扩展本机Angular 例如,我希望我的表单有一个附加方法setNew()(类似于现有的$setPristine(),等等)。现在我在每个控制器中都这样做,但我希望它在整个应用程序中都可用,而不必到处声明。您可以通过定义具有相同名称的其他指令来定义指令的其他行为。因此,您似乎可以做到: 在这种情况下,您需要声明两个指令,因为ngForm实际上是form的别名,您所说的原生FormController是什么意思?你还可以解释一下自定义方法,比如它们的用途吗?看看这个:@Nexu

如何使用其他方法全局扩展本机Angular


例如,我希望我的表单有一个附加方法
setNew()
(类似于现有的
$setPristine()
,等等)。现在我在每个控制器中都这样做,但我希望它在整个应用程序中都可用,而不必到处声明。

您可以通过定义具有相同名称的其他指令来定义指令的其他行为。因此,您似乎可以做到:


在这种情况下,您需要声明两个指令,因为
ngForm
实际上是
form

的别名,您所说的原生FormController是什么意思?你还可以解释一下自定义方法,比如它们的用途吗?看看这个:@Nexus23我看到了,但那是关于从现有的控制器创建一个新的控制器-不确定我将如何修改本机控制器我猜这可以由装饰师完成,但这个想法需要验证。Pefect!我正在构建一个指令来添加到我的表单中,但这要好得多。
angular.module('app', [])
  .directive('ngForm', formControllerDecorator)
  .directive('form', formControllerDecorator);

function formControllerDecorator () {
  return {
    require: 'form',
    link: function ($scope, $element, $attrs, formCtrl) {
      formCtrl.setNew = function () {
        // ...
      };
    }
  };
}