gpt4 book ai didi

node.js - Node js 和 mongodb 中的类别和子类别

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:35 25 4
gpt4 key购买 nike

我想在 MEAN 应用程序中构建类别和子类别功能。

我有一个 ProductCategoryModel.js 模型,如下所示:

var mongoose = require('mongoose');

var productCategorySchema = mongoose.Schema({
title:{ type:String, required:true },
slug:{ type:String, required:true },
status:{ type:Number, required:true, default:1},
description:{ type:String, required:true },
post_type:{type:String, default:'product_catgory'},
parentID:{ type:mongoose.Schema.Types.ObjectId, ref:'ProductCategory', default:null},
});
module.exports = mongoose.model('ProductCategory', productCategorySchema);

产品类别 Controller

adminApp.controller('ProductCategoryModalInstanceCtrl', function ($scope, productcategory, $http, $uibModalInstance) {

$scope.productCatList = [];
return $http.get('/api/product-category/parent-cat-list')
.then(function (result) {
$scope.productCatList = result.data;
});

});

产品类别表格

<div class="form-group" ng-class="{ 'has-error' : productCategoryForm.parentID.$invalid && !productCategoryForm.parentID.$pristine }">
<label>Parent Category</label>
<select name="parentID" class="form-control" id="parentID" ng-model="productcategory.parentID">
<option ng-repeat="category in productCatList" value="{{category._id}}">
{{category.title}}</option>
</select>
</div>

现在我的问题是我想在新的下拉列表中显示所选父类别的子类别,我该怎么做,我认为应该有一个新的下拉列表并在更改父类别下拉列表时更新其内容。

第二个问题是这行代码没有返回我的父类别,其中parentID=null,它返回所有类别的列表。

return Promise.denodeify(Models.ProductCategoryModel.find.bind(Models.ProductCategoryModel))({ parentID: null })
.then(function (results) {
return results;
});

最佳答案

你可以这样做:

adminApp.controller('ProductCategoryModalInstanceCtrl', function ($scope, productcategory, $http, $uibModalInstance) {
$scope.productCatList = [];
return $http.get('/api/product-category/parent-cat-list')
.then(function (result) {
$scope.productCatList = result.data;
});

$scope.$watch('productcategory.parentID', function(newValue, oldValue, scope) {
if(newValue != oldValue){
$http.get('/api/product-category/' + $scope.productcategory.parentID)
.then(function (result) {
$scope.productSubCatList = result.data;
});
}
});
});

$watch 将查找 productcategory.parentID 的更改,然后,当它更改时,您可以向 API 发送 get 请求以获取其中的所有类别parentID 是指定的。

在服务器端,您必须创建一个端点,该端点根据parentID字段返回所有类别。在请求处理程序中,您可以执行以下操作:

Product.find({parentID: req.params.parentID}, function(err, categories){
if(err) console.log("Error: " + JSON.stringify(err));
else if(categories) res.json(200, categories);
});

这可能无法完全为您提供解决方案,但这是一种可以遵循的方法。

关于node.js - Node js 和 mongodb 中的类别和子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com