Javascript AngularJS:添加依赖项(内联数组与注入)
因此,我在GitHub()上找到了一个practice Spring Boot项目。该应用程序允许用户创建项目列表及其描述;还有删除列表中项目的功能。该项目试图使用AngularJS向SPA(单页应用程序)展示自己 代码使用注入向定义的控制器和工厂添加依赖项。下面是一个名为“controller.js”的示例类,它使用以下实现:Javascript AngularJS:添加依赖项(内联数组与注入),javascript,angularjs,spring,dependency-injection,Javascript,Angularjs,Spring,Dependency Injection,因此,我在GitHub()上找到了一个practice Spring Boot项目。该应用程序允许用户创建项目列表及其描述;还有删除列表中项目的功能。该项目试图使用AngularJS向SPA(单页应用程序)展示自己 代码使用注入向定义的控制器和工厂添加依赖项。下面是一个名为“controller.js”的示例类,它使用以下实现: var AppController = function($scope, Item) { Item.query(function(response) {
var AppController = function($scope, Item) {
Item.query(function(response) {
$scope.items = response ? response : [];
});
$scope.addItem = function(description) {
new Item({
description: description,
checked: false
}).$save(function(item) {
$scope.items.push(item);
});
$scope.newItem = "";
};
$scope.updateItem = function(item) {
item.$update();
};
$scope.deleteItem = function(item) {
item.$remove(function() {
$scope.items.splice($scope.items.indexOf(item), 1);
});
};
};
AppController.$inject = ['$scope', 'Item'];
angular.module("myApp.controllers").controller("AppController", AppController);
现在(如果我错了,请纠正我)有两种其他方法可以向控制器和工厂添加依赖项:
angular.module("myApp.controllerModule").controller("AppController", ['$scope', 'Item', function($scope, Item){
Item.query(function(response) {
$scope.items = response ? response : [];
});
$scope.addItem = function(description) {
new Item({
description: description,
checked: false
}).$save(function(item) {
$scope.items.push(item);
});
$scope.newItem = "";
};
$scope.updateItem = function(item) {
item.$update();
};
$scope.deleteItem = function(item) {
item.$remove(function() {
$scope.items.splice($scope.items.indexOf(item), 1);
});
}; }]);
当我尝试这样做时,我的代码与原始代码不一样。我不知道这是否是语法错误,或者在不同样式的应用中是否存在一些重要差异。有人能告诉我为什么这不起作用吗?我在两个代码示例中看到的唯一区别是模块的名称。由于您没有提供错误消息,我假设您没有将模块应注入的所有文件中的
myApp.controllers
更改为myApp.controllerModule
。您可以使用参数名自动生成这些注释。这是大多数项目应该使用的。手动复制依赖项不是很实用。如果您定义的我的代码与原始代码的工作方式不同,这将非常有用。
有三种注入依赖项的方法:内联数组注释、$inject
属性注释和隐式注释。前两种是小型化安全的。最后一个不是。有关更多信息,请参见。是这样吗??我使用了$inject
符号来表示缩小的代码,它的工作方式很有魅力。你是指任何特殊的缩小过程吗?你是对的。两种方法都可以,但仍建议使用ng注释。更正了答案。