gpt4 book ai didi

angularjs - 添加新模块在 angularjs 中不起作用

转载 作者:行者123 更新时间:2023-12-03 00:02:16 25 4
gpt4 key购买 nike

我正在尝试向我的应用程序添加一个新模块。我的索引页 HTML 是

<body ng-app="com.app">

在我的 app.js 中

angular.module('mod1', ['ngResource']);
angular.module('mod2', []); //this is module i want to add
var app = angular.module('com.app', ['ngResource','mod1','mod2']);

我的Controllers1.js

var Controllers = angular.module('mod1');
Controllers.controller('ctrl1', function($scope,$http) {});

Controllers.controller('ctrl2', function($scope,$http) {}); //function for module 2

当我尝试将此 ctrl2 添加到我的“controllers1.js”中时,它可以工作,但是如果我将其添加到我的其他 js 中,例如“controllers2.js”,它就不起作用。我的controllers2.js 是

'use strict';

var mymodule = angular.module('mod2');

mymodule.controller('ctrl2', function() {

console.debug("Testing...");

});

我的问题总结是:当我尝试将 ctrl2 函数添加到新模块时,它不起作用,并且在 Firefox 控制台上出现错误

Error: Argument 'ctrl2' is not a function, got undefined 
assertArg@http://localhost:8080/tm-webapp/resources/lib/angular.js:1039
assertArgFn@http://localhost:8080/tm-webapp/resources/lib/angular.js:1050
@http://localhost:8080/tm-webapp/resources/lib/angular.js:4802
update@http://localhost:8080/tm-webapp/resources/lib/angular.js:14198
Scope.prototype.$broadcast@http://localhost:8080/tm-webapp/resources/lib/angular.js:8307
updateRoute/<@http://localhost:8080/tm-webapp/resources/lib/angular.js:7463
qFactory/defer/deferred.promise.then/wrappedCallback@http://localhost:8080/tm-webapp/resources/lib/angular.js:6846
qFactory/defer/deferred.promise.then/wrappedCallback@http://localhost:8080/tm-webapp/resources/lib/angular.js:6846
qFactory/ref/<.then/<@http://localhost:8080/tm-webapp/resources/lib/angular.js:6883
Scope.prototype.$eval@http://localhost:8080/tm-webapp/resources/lib/angular.js:8057
Scope.prototype.$digest@http://localhost:8080/tm-webapp/resources/lib/angular.js:7922
Scope.prototype.$apply@http://localhost:8080/tm-webapp/resources/lib/angular.js:8143
done@http://localhost:8080/tm-webapp/resources/lib/angular.js:9170
completeRequest@http://localhost:8080/tm-webapp/resources/lib/angular.js:9333
createHttpBackend/</xhr.onreadystatechange@http://localhost:8080/tm-webapp/resources/lib/angular.js:9304

我被困在这里很长一段时间了,请帮助我,我将非常感激。问候,

最佳答案

确保您的文件加载器(脚本标签、requirejs 等)中的 Controllers1.js 位于 controllers2.js 旁边。

PS:某些操作系统/网络服务器(例如 Windows 上 karma 内的服务器)区分大小写。因此,请尝试对文件使用相同的大小写(大写或小写)。

关于angularjs - 添加新模块在 angularjs 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18181752/

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