gpt4 book ai didi

javascript - AngularJS:添加依赖项(内联数组与注入(inject))

转载 作者:行者123 更新时间:2023-12-03 20:55:20 24 4
gpt4 key购买 nike

所以我在 GitHub (https://github.com/spring-projects/spring-boot) 上找到了一个练习 Spring Boot 的项目。该应用程序允许用户创建项目列表及其描述;还有删除列表中项目的功能。该项目是尝试使用 AngularJS 让自己接触 SPA(单页应用程序)。

代码使用注入(inject)将依赖项添加到定义的 Controller 和工厂。这是一个使用此实现的名为“controller.js”的示例类:

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);

现在(如果我错了请纠正我)还有另外两种方法可以将依赖项添加到 Controller 和工厂:

  1. 内联数组
  2. 隐式注入(inject)

我的观点是,我可以采用注入(inject)了所有依赖项的应用程序,并重写 Controller 和工厂定义将使用内联数组方法添加其依赖项的代码。这是相同的“controller.js”,但使用内联数组:

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);
});
}; }]);

当我尝试这样做时,我的代码无法像原始代码那样工作。我不知道这是否是语法错误,或者在不同样式的应用中是否存在一些重要差异。谁能告诉我为什么这不起作用?

最佳答案

我在这两个代码示例中看到的唯一区别是模块的名称。由于您没有提供错误消息,我假设您没有在所有应该注入(inject)模块的文件中将 myApp.controllers 更改为 myApp.controllerModule

关于javascript - AngularJS:添加依赖项(内联数组与注入(inject)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com