我正在浏览github上的一些内容,我在controller.js中看到,有人放了以下内容:
function ImageController ($scope, $timeout) {
var vm = this;
}
这是用来做什么的?
答案 0 :(得分:42)
在这种情况下,vm
表示viewmodel
。
这是一种快捷方式,因此您可以使用this.someMethod()
而不是撰写vm.someMethod()
。
使用Controller As
语法时非常常见,因此请勿使用$scope
“意外”。
此外,使用this
关键字可能会很麻烦,因为它可能会根据使用位置引用不同的内容。
答案 1 :(得分:6)
为什么?:帮助避免在一个内部使用$ scope方法的诱惑 控制器,否则可能更好地避免它们或移动它 工厂的方法,并从控制器引用它们。
您可以查看完整John Papa Angular Style以更深入地了解...