Angular $控制器服务和缩小
Angular $controller service and minification
我正在这样定义一个新的控制器:
$controller(function ($scope) {}, {})
但是当我打开严格模式时,这会抛出一个错误,提示必须将 $scope 声明为注释。
问题是 $controller 服务只接受函数方法或控制器名称,而不是我可以定义注释的数组。
https://docs.angularjs.org/api/ngMock/service/$控制器
有谁知道我该如何解决这个问题?它必须在严格模式下工作的原因是因为我所有的代码都被缩小了,所以如果它不能在严格模式下工作,它在缩小时也不会工作。
提前谢谢你,
马蒂亚斯
您可以命名您的函数并使用 $inject。
$controller(myController, {});
myController.$inject = ['$scope'];
function myController($scope) {}
你可以试试这个(对不起,我没有检查):
myNamedFunction.$inject = ['$scope'];
function myNamedFunction($scope) {
}
$controller(myNamedFunction, {});
按照这些方法中的任何一种在 angularjs 中添加 DI。
1)
mycontroller.$inject = ['$scope'];
function mycontroller($scope){}
2)
angular
.module('app',[])
.controller('mycontroller',['$scope',function(){ // write controller code here}]);
3) 使用 ngAnnotate.
我正在这样定义一个新的控制器:
$controller(function ($scope) {}, {})
但是当我打开严格模式时,这会抛出一个错误,提示必须将 $scope 声明为注释。
问题是 $controller 服务只接受函数方法或控制器名称,而不是我可以定义注释的数组。
https://docs.angularjs.org/api/ngMock/service/$控制器
有谁知道我该如何解决这个问题?它必须在严格模式下工作的原因是因为我所有的代码都被缩小了,所以如果它不能在严格模式下工作,它在缩小时也不会工作。
提前谢谢你,
马蒂亚斯
您可以命名您的函数并使用 $inject。
$controller(myController, {});
myController.$inject = ['$scope'];
function myController($scope) {}
你可以试试这个(对不起,我没有检查):
myNamedFunction.$inject = ['$scope'];
function myNamedFunction($scope) {
}
$controller(myNamedFunction, {});
按照这些方法中的任何一种在 angularjs 中添加 DI。
1)
mycontroller.$inject = ['$scope'];
function mycontroller($scope){}
2)
angular
.module('app',[])
.controller('mycontroller',['$scope',function(){ // write controller code here}]);
3) 使用 ngAnnotate.