什么'var vm = this;'角度控制器意味着什么

时间:2015-11-16 16:39:31

标签: angularjs

我正在浏览github上的一些内容,我在controller.js中看到,有人放了以下内容:

function ImageController ($scope, $timeout) {
   var vm = this;
}

这是用来做什么的?

2 个答案:

答案 0 :(得分:42)

在这种情况下,vm表示viewmodel

这是一种快捷方式,因此您可以使用this.someMethod()而不是撰写vm.someMethod()

使用Controller As语法时非常常见,因此请勿使用$scope“意外”。

此外,使用this关键字可能会很麻烦,因为它可能会根据使用位置引用不同的内容。

答案 1 :(得分:6)

  

为什么?:帮助避免在一个内部使用$ scope方法的诱惑   控制器,否则可能更好地避免它们或移动它   工厂的方法,并从控制器引用它们。

您可以查看完整John Papa Angular Style以更深入地了解...