我看过用两种方式写的控制器:
1)
myModule.controller('myController', function($scope) {
...
});
2)
using (var conn = new SqlConnection("YOUR CONNECTION STRING"))
{
using (var command = new SqlCommand("YOUR PROCEDURE NAME", conn))
{
command.CommandType = CommandType.StoredProcedure;
conn.Open();
command.ExecuteNonQuery();
}
}
在方法2中,该函数未命名。有人可以在这里向我解释一下这个区别,以及何时应该使用另一种方法?
答案 0 :(得分:1)
从AngularJS的角度来看,两者之间没有真正的区别,特别是当您在示例中内联控制器(或服务'或过滤器'等)声明时。
如果您想在下面将控制器注册到模块中,那么唯一的区别就是:
myModule.controller('myController', myController);
function myController($scope) {
...
});
...因为只有在命名函数的情况下函数体的提升才能实现这种结构。
如果您想了解有关命名与匿名函数的更多信息,请在此处提供一个很好的解释:var functionName = function() {} vs function functionName() {}
编辑:
值得一提的是,似乎更倾向于使用命名函数来提高代码的可读性,请参阅AngularJS样式指南:https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#style-y024 - 他们也更喜欢使用“提升方法”来定义东西,因为你可以参见所有例子。它不是唯一正确的方式,但它是一种方式;)一致性是关键。