【问题标题】:Angular html5 mode Error: [ngRepeat:dupes] Duplicates in a repeater are not allowedAngular html5 模式错误:[ngRepeat:dupes] 不允许在转发器中重复
【发布时间】:2016-05-19 03:51:35
【问题描述】:

我想就这段代码向你寻求帮助。

我在控制台中收到 错误

错误:[ngRepeat:dupes] 不允许在转发器中重复。使用“track by”表达式指定唯一键。中继器:类别中的类别,重复键:字符串:

我不知道为什么这段代码不起作用:

category in categories track by $index

就像这个例子中的https://docs.angularjs.org/error/ngRepeat/dupes

文件来源:

public\views\categories.html

<h3 class="heading">Category</h3>
<div ng-controller="CategoriesCtrl">
<div class="row">
    <div class="categories">
        <div ng-repeat="category in categories">
            <div class="col-md-6">
    <h3>{{category.name}}</h3>
                <p>{{category.description}}</p>
         <a href="/articles/category/{{category.name}}">Viwe Articels</a>
              </div>
          </div>
      </div>
   </div>
</div>

categories.controller.js

angular.module("kB")

.controller('CategoriesCtrl', ['$scope', '$http', function($scope, $http) {
$http.get('/categories').success(function(data) {
    $scope.categories = data;
});
}]);

categories.js

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

var Category = require('../models/category');
router.get('/', function(req, res, next) {
Category.getCategories(function(err,categories){
    if(err){
       console.log(err);
    }
res.json(categories);
   });
});
router.get('/:id', function(req, res, next) {
Category.getCategoryById(req.params.id, function(err,category){
   if(err){
      console.log(err);
   }
res.json(category);
   });
});

module.exports = router;

models/category.js

var categorySchema = mongoose.Schema({
    name: {
            type: String,
            index: true,
            required: true
          },
    description: {
            type: String
          }
});

routis/index.js

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

uter.get('*', function (req, res) {
res.render('index')
})

module.exports = router; 

在 app.js 中

$locationProvider.html5Mode({
    enabled: true,
    requireBase: false
});

类别对象

{ getCategories: [Function],
  getCategoryById: [Function],
  getArticlesByCategory: [Function],
  createCategory: [Function] }

【问题讨论】:

  • 请分享您的categories 对象。
  • { getCategories: [Function], getCategoryById: [Function], getArticlesByCategory: [Function], createCategory: [Function] }
  • 为什么不记录类别并查看您是否正在获取数据,那么您可以确定问题出在您的前端

标签: angularjs node.js express


【解决方案1】:

变化

<div ng-repeat="category in categories">

<div ng-repeat="category in categories track by $index">

如果您还没有这样做,应该可以工作。

【讨论】:

  • 它可以工作,但是在我刷新页面后它变成了一个 JSON 文件
【解决方案2】:

现在它适用于:

 <div ng-repeat="category in categories track by $index">

如果我有 / 或 * 表示:

app.get('/', function(req, res) {
   res.render('index')
  });

 app.get('*', function(req, res) {
    res.render('index')
  });

但是在我刷新页面后它变成了一个 json 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 2016-03-05
    • 2017-12-02
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多