【问题标题】:Angular and NodeJS module 'foo' is not availableAngular 和 NodeJS 模块“foo”不可用
【发布时间】:2017-02-03 17:53:46
【问题描述】:

我觉得我疯了,因为答案应该很简单,我是 angular 和 nodejs 的新手,我正在尝试制作一个将它们结合起来的应用程序。

“错误:[$injector:nomod] 模块 'myApp' 不可用!您拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。”

公共/控制器/家庭控制器:

(function () {
'use strict';
angular.module('myApp').controller('homeController', homeController);

    function homeController() {
        var vm = this;
        vm.fillerData = "FillerData"
    }
}) ();

公共/Index.html:

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <title>Dit is de index</title>
    <script src="res/js/angular.js" type="text/javascript" defer="defer"></script>
    <script src="controllers/homeController.js" type="text/javascript" defer="defer"></script>
</head>
<h1>What</h1>
<body ng-controller="homeController as homeCtrl">
    {{ homeCtrl.fillerData }}
</body>
</html>

路由器/index.js:

var router = require('express').Router();

router.get('/index', function (req, res) {
    res.sendfile('public/index.html');
});
router.get('/home', function (req, res) {
    res.sendfile('public/home.html');
});
module.exports = router;

和/server.js:

var express  = require('express');
var app      = express();
var routes = require('./router');

app.use(express.static(__dirname + '/public'));

app.use('/', routes);
require('router/index.js')(app);

app.listen(3000);
console.log("App listening on port 3000");

所有必要的软件包也已安装,任何帮助将不胜感激

【问题讨论】:

    标签: javascript angularjs node.js


    【解决方案1】:

    如果你想创建一个新的module,你需要传递一个空的array作为第二个参数(如果你依赖于其他模块,而不是告诉数组中的模块),这将告诉角度您正在创建一个新模块。

    来自Documentation

    请注意,使用 angular.module('myModule', []) 将创建 模块 myModule 并覆盖任何名为 myModule 的现有模块。利用 angular.module('myModule') 检索现有模块。

    angular.module('myApp',[]).controller('homeController', homeController);
    

    如果你想获得已经创建的模块,那么你需要像这样调用

    angular.module('myApp',[])....
    

    【讨论】:

    • 我只能说“哇……”。这解决了一切,谢谢,我很感激。
    • @woodsprite 希望你看到我的回答:P
    • 是的,但苏伦早了一分钟,不过我投票给你了!
    【解决方案2】:

    你的模块应该有空的依赖注入,更改为

    angular.module('myApp',[]).controller('homeController', homeController);
    

    【讨论】:

      【解决方案3】:

      你必须改变

      angular.module('myApp').controller('homeController', homeController);
      

      收件人:

      angular.module('myApp', []).controller('homeController', homeController);
      

      它将创建module

      【讨论】:

        猜你喜欢
        • 2017-11-29
        • 1970-01-01
        • 1970-01-01
        • 2018-05-18
        • 2021-08-22
        • 1970-01-01
        • 2017-01-16
        • 2020-01-02
        • 2015-01-23
        相关资源
        最近更新 更多