我理解form
指令是FormController
的一个实例,并在name
属性的值下发布到当前作用域。 (https://docs.angularjs.org/guide/forms)。
如果form
指令还包含ng-controller
指令,如this example所示,会发生什么?
我试着看看如果ng-controller
属性的名称不是“FormController”会发生什么:
<html>
<head>
<script src='angular.js'></script>
</head>
<script type='text/javascript'>
Object.prototype.getName = function() {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
</script>
<body>
<div ng-app='theApp'>
<form name='myForm' >
</form>
{{myForm.getName()}}
<form name='myForm2' ng-controller='MyFormController'>
{{myForm2.getName()}}
</form>
</div>
<script type='text/javascript'>
angular.module('theApp', []).controller('MyFormController', ['$scope', function($scope) {}]);
</script>
</body>
</html>
以上代码在控制台中打印:
FormController
FormController
答案 0 :(得分:0)
控制器的名称并不重要!
ngForm
的意思是<form>
自动成为ngForm
指令的实例,您可以将任何控制器附加到该实例上。
所以最后你的myForm2
会:
ngForm
方法和道具(例如myForm2。$ valid ecc。)MyFormController
方法和道具(在你的情况下......没有:-p)