2017-02-27 29 views
-1

NG控制器=“invoiceController为发票”的关键优势创造新的invoiceController构造和分配相同的场景,这类似的事情$范围的注射没有在控制器功能后面的参数范围什么是使用controllerAS在angularJS

我是否适合上述观点。

如果是,那么范围如何与此相关。 请帮忙。

-- AngularJS Developer Guide - Conceptual Overview

+0

您可能会发现这些有用:http://stackoverflow.com/questions/30970922/what-are-the-advantages-of-using-controller-as-syntax-instead-of-scope,http:// stackoverflow .com/questions/32755929 /控制器与角度的优势 – lealceldeiro

+0

[Angular中的Controller Controller的优点是什么?] /问题/ 32755929 /控制器什么-是最优点-的- - 如式 - 角) – georgeawg

+0

http://stackoverflow.com/questions/30641478/angularjs-controller-as-or-scope – Claies

回答

0

“为” 讲述什么 “这个” 应该指向。这样,您可以在不同范围内创建控制器的多个实例,而不必因感谢他们的不同名称而感到困惑。

0

它允许您将控制器用作类或原型,将类/原型方法和属性公开给您的模板,而不是您的控制器向scope对象添加方法和属性。

因此,与ES2015或ES5你可以做两种:

export class SomeController { 

someProperty = true; 

someMethod() { 
    return 'foo';  
} 
} 

或者

function SomeController() {} 
SomeController.prototype.someProperty = true; 
SomeController.prototype.someMethod = function() { return 'foo'; } 

现在,如果你提供的这些之一,您的模板SomeController as ctrl您都可以访问这些作为ctrl.somePropertyctrl.someMethod()。您的控制器的ctrl实例将被添加到$scope

另一个好处是内存占用。 Monkey修补功能到$ scope是浪费。类和原型允许共享相同的方法实现,同时保持每个实例的独立性。例如,这添加了具有许多实例的组件,例如列表项。

相关问题