在angularjs中没有$ scope的控制器内定义的函数或变量的范围

时间:2016-03-27 12:18:40

标签: angularjs

我需要知道在不使用$ scope的情况下定义的函数和变量之间的区别(例如$ scope.myfunction = function(){})。

我需要知道我是否在控制器中定义变量或函数而不使其成为$ scope的属性,这些变量/方法的范围是什么?它会获得$ windows范围吗?

如果我想在我的控制器中定义一些函数来组织我的代码,是否可以在没有$ scope方法的情况下定义这些函数?

最佳做法是什么?

2 个答案:

答案 0 :(得分:0)

是。一般来说,不要使用视图中不需要的功能来污染$ scope。

答案 1 :(得分:0)

javascript的函数范围应用都是一样的。在这方面,角度没有任何固有的特殊之处。您可以在此处阅读:What is the scope of variables in JavaScript?

然后您将知道在控制器(或函数)内声明的函数将不具有窗口范围。可以定义不是$ scope对象属性的函数。实际上,如果您打算在模板中使用变量/函数,那么您应该只将变量/函数附加到$ scope对象(最佳实践)。