使用 EJS 部分和角度的节点/快速项目:未捕获的引用错误:未定义角度



我觉得我在这里完全错过了一些东西,但我正在尝试在单页角度应用程序中使用 ejs 部分。我一直收到一个未捕获的引用错误:角度未在我的部分定义。我认为这可能与使用 ejs 部分而不是使用 ng-include 有关,但是我在玩它时没有任何运气。任何帮助都会很棒。

应用.js

(function(){
  var app = angular.module('dashboard', []);
  app.controller('ItemController', function(){
    this.item = items;
  });
  //need to loop through items in DB for now using these test objects
  var items = [
    {
      name : 'name1',//query to db for name goes here
      stock : '4',//query to db
      img : '/images/bb-logo.png'//query to db
    },
    {
      name : 'name2',//query to db for name goes here
      stock : '6',//query to db
      img : '/images/bb-logo.png'//query to db
    }
  ];
})();

index.ejs

<!DOCTYPE html>
<html lang="en" ng-app="dashboard">
<head>
  <meta charset="UTF-8">
  <title><%= title %></title>
  <link rel="stylesheet" href='/libs/font-awesome/css/font-awesome.css'>
  <link rel="stylesheet" href='/libs/foundation/css/foundation.css'>
  <link rel="stylesheet" href='/stylesheets/style.css'>
  <!-- include angular here -->
  <script type="text/javascript" href='/libs/angular/angular.js'></script>
  <script type="text/javascript" href='/libs/modernizer/modernizer.js'></script>
  <script type="text/javascript" src="/angularApp.js"></script>
</head>
<body>
  <% include partials/topbar %>
  <div class="row">
    <div class="large-6 columns etsy-container">
      <% include partials/etsy-container %>
    </div>
    <div class="large-6 columns">
      <% include partials/amazon-container %>
    </div>
  </div>
</body>
</html>

/亚马逊集装箱

<div class='store-container'>
  <h1 class="left">Amazon</h1>
  <span class="store-utility-icons"><i class="fa fa-refresh right"></i><i class="fa fa-times-circle-o right"></i></span>
  <div class="clear"></div>
  <% include /item %>
</div>

/item.ejs

<div ng-controller="ItemController as store" >
  <div ng-repeat="item in store.items">
    <img ng-src="{{item.img}}" />
    <p>{{item.name}} <i> Stock level: {{item.stock}}</i></p>
  </div>
</div>

你包含 Angular 的方式是错误的。你有

<script type="text/javascript" href='/libs/angular/angular.js'></script>

但它应该是:

<script type="text/javascript" src="/libs/angular/angular.js"></script>

所以你必须使用src而不是href.看起来像一个典型的复制/粘贴错误。所以,最后,这与EJS或使用部分无关,这只是错误的HTML ;-)。

PS:除此之外,您在HTML中对属性使用单引号。始终使用双引号,因为这是通常和常见的方法。

PPS:这同样适用于您尝试加载 Modernizr 的行。

最新更新