更新
这是我在下面看到以下示例的文章:https://github.com/johnpapa/angular-styleguide
重新阅读该示例后,我意识到正在解释一个特定且独特的场景,因此这个问题可能不完全有效。但是,我不会删除它,所以如果有人有任何进一步的知识,他们可以贡献并帮助社区。 p>
我一直在阅读有关角度最佳实践的内容,在阅读了一些文章后我确信最好的方法是使用控制器作为语法:
angular.module('example', [])
.controller('somectr', somectr);
somectr.$inject =['$http'];
function somectr($http) {
var vm = this;
this.x;
}
然而,我看到一篇文章显示了这种语法,但它也注入了一个范围:
somectr.$inject = ['$scope', '$http'];
function somectr($scope, $http) {
var vm = this;
this.x;
this.y;
$scope.someFunc = function() {}
}
我认为使用控制器作为语法意味着不需要使用范围对象。什么用户案例需要控制器作为语法,但仍然使用范围对象?
答案 0 :(得分:3)
即使您使用$scope
,注入controllerAs
的示例也是您要发布/发布活动的时间。
如果您想发布一些活动,请使用:
$scope.$broadcast('eventName', value)
$scope.$emit('eventName', value)
订阅:
$scope.$on('eventName', function)
进一步查看:https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope
另一个例子是如果你使用$scope.$watch
ToddMotto有一篇关于控制器的文章:http://toddmotto.com/digging-into-angulars-controller-as-syntax/