【问题标题】:Failed to instantiate module, AngularJS + NodeWebkit无法实例化模块,AngularJS + NodeWebkit
【发布时间】:2015-04-28 21:40:06
【问题描述】:

我尝试使用 Node-Webkit 和 AngularJS 制作一个独立的 webapp。

我遵循 AngularJS.org 教程,但在尝试创建 Angular 模块时遇到错误。

错误:[$injector:modulerr] 无法实例化模块 hecktelionApp 由于:

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

我的项目层次结构如下:

root-app-folder
├── index.html
├── package.json
├── js\
│   └── app.js
└── node_modules\
    └── angular\

这是我的文件

index.html

<!DOCTYPE html>
<html ng-app="hecktelionApp">
    <head>
        <title>Hecktelion : Legacy</title>
        <script src="js/app.js"></script>
    </head>
    <body>
        <p>Hello world !</p>
    </body>
</html>

app.js

'use strict';

global.document = window.document;

var angular = require('angular');
var hecktelionApp = angular.module('hecktelionApp', []);

package.json

{
  "name": "Hecktelion",
  "main": "index.html",
  "author": "Toxicat <marc.guilmard@gmail.com>",
  "window": {
    "toolbar": false,
    "width": 1280,
    "height": 1024
  },
  "dependencies": {
    "angular": "^1.3.14"
  }
}

我做错了什么?

【问题讨论】:

  • 您确定require 有效吗?你在用browserify吗?
  • 我承认,我不知道“浏览器”是什么。我去看看。
  • @AvraamMavridis : browserify 让它工作,但我真的知道为什么以及如何
  • @AvraamMavridis 如果他使用的是 node-webkit(NW.js),他不应该需要 browserify,因为你可以直接从 DOM 中require
  • @PanzerKadaver 我将为另一个修复添加答案。

标签: javascript angularjs node.js node-webkit


【解决方案1】:

看起来window 没有按照需要的角度正确定义。

您可以将代码包装在匿名函数中,并将window 注入其中。

(function() {
    var angular = require('angular');
    var hecktelionApp = angular.module('hecktelionApp', []);
}).bind(window);

【讨论】:

  • 适用于旧的 nw.exe (11.2 win64) 和新的 nw.exe (12.0 alpha 3 win64)
猜你喜欢
  • 2014-05-30
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
相关资源
最近更新 更多