【问题标题】:AngularJS "ReferenceError: window is not defined" in NodeJS ApplicationNodeJS应用程序中的AngularJS“ReferenceError:未定义窗口”
【发布时间】:2016-03-29 17:55:56
【问题描述】:

我正在尝试在 nodeJS 应用程序中使用带有 express 4 和翡翠的 Angular 模块。

所以,为此我在 app.js 中做了 npm install angular --savevar angular = require('angular');

但它抛出了一个错误

e:\Project\node_modules\angular\angular.js:29016
})(window, document);
   ^
ReferenceError: window is not defined
    at Object.<anonymous> (e:\Project\node_modules\angular\angular.js:29016:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (e:\Project\node_modules\angular\index.js:1:63)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (e:\Project\app.js:11:15)
    at Module._compile (module.js:456:26)

原因。

我将在 anjularjs 中将我的侧边栏设置为活动状态。 这是我的翡翠档案

ul.sidebar-nav(ng-controller="HeaderController")
    // li.sidebar-brand
    li(ng-class="{ active: isActive('/dashboard')}")
        a(href='/dashboard') Dashboard
    li(ng-class="{ active: isActive('/cases')}")
        a(href='/cases') Cases
    li(ng-class="{ active: isActive('/contacts')}")
        a(href='/contacts') Contacts
    li(ng-class="{ active: isActive('/documents')}")
        a(href='/documents') Documents
    li(ng-class="{ active: isActive('/calendar')}")
        a(href='/calendar') Calendar
    li(ng-class="{ active: isActive('/timeline')}")
        a(href='/timeline') Timeline

这里是模块

function HeaderController($scope, $location) 
{ 
    $scope.isActive = function (viewLocation) { 
        return viewLocation === $location.path();
    };
}

【问题讨论】:

  • 你希望 Angular 在 node.js 应用程序中做什么,服务器端
  • 您的编辑似乎与我在评论中提出的问题无关。您添加的代码的一部分似乎是一些服务器端代码,用于生成带有角度扩展属性的 HTML,这些 HTML 将被发送到浏览器。另一个似乎是在浏览器中运行客户端的一些代码。

标签: javascript angularjs node.js pug


【解决方案1】:

在 nodejs 环境中没有窗口对象。窗口有一个“等价物”。在这里你可以阅读它DOC for Global。 Angular 用于客户端开发。您无法在服务器端运行它。

【讨论】:

  • 同意你的观点,我从你的评论中得到了一些想法。萨达姆
  • @DININDU - 请分享您的解决方案。
  • @SaranshKejriwal 只需将 js 文件导入到您的 html 模板中,如下&lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"&gt;&lt;/script&gt; :)
猜你喜欢
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 2021-03-30
  • 2020-10-08
  • 2018-05-27
  • 2020-09-18
  • 1970-01-01
  • 2022-01-02
相关资源
最近更新 更多