[英]Submitting AngularJS form to linked Mongoose model
我正在使用mean.js,並希望創建兩種形式。 一個用於網站,另一個用於網站頁面模板。
網站API POST路由為/api/websites
頁面模板API POST路由為/api/websites/:websiteId/page-templates
網站模型modules/websites/server/models/website.server.model.js
var WebsiteSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Website name',
trim: true
},
domain: {
type: String,
required: 'Please fill a correct domain name',
trim: true
},
active: {
type: Boolean,
default: true,
required: true
},
country: {
type: String,
required: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
頁面模板模型modules/websites/server/models/page-template.server.model.js
var PageTemplateSchema = new Schema({
website: {
type: Schema.ObjectId,
required: 'Website object not found'
},
template_name: {
type: String,
trim: true,
required: 'Please enter template name'
},
art_name_dom: {
type: String,
trim: true
},
active: {
type: Boolean,
default: true,
required: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
網站的角度表單工作正常,但錯誤出現在頁面模板表單上
頁面模板表單modules/websites/client/views/page-templates/form-page-template.client.view.html
...
<p class="card-description">Website: <a href="{{vm.website.domain}}" target="_blank">{{vm.website.name}}</a></p>
<form name="vm.form.pageTemplateForm" class="forms-sample" ng-submit="vm.save(vm.form.pageTemplateForm.$valid)"
novalidate>
...
控制器modules/websites/client/controllers/page-templates/page-templates.client.controller.js
angular
.module('websites')
.controller('PageTemplatesController', PageTemplatesController);
PageTemplatesController.$inject = ['$scope', '$state', '$window', 'Authentication', 'websiteResolve', 'pageTemplateResolve', 'Notification'];
function PageTemplatesController($scope, $state, $window, Authentication, website, pageTemplate, Notification) {
var vm = this;
vm.authentication = Authentication;
vm.page_template = pageTemplate;
vm.website = website;
vm.error = null;
vm.form = {};
vm.save = save;
// Save Website
function save(isValid) {
if (!isValid) {
$scope.$broadcast('show-errors-check-validity', 'vm.form.pageTemplateForm');
return false;
}
vm.page_template.createOrUpdate()
.then(successCallback)
.catch(errorCallback);
function successCallback(res) {
$state.go('websites.view'); // should we send the User to the list or the updated Article's view?
Notification.success({ message: '<i class="glyphicon glyphicon-ok"></i> Article saved successfully!' });
}
function errorCallback(res) {
Notification.error({ message: res.data.message, title: '<i class="glyphicon glyphicon-remove"></i> Article save error!' });
}
}
}
網站表格運行正常。 錯誤與頁面模板表單一起出現。 據我了解,頁面模板表格無法引用網站進行存儲。
在表單提交時遇到此錯誤
我必須以Angular的$resource
對象為目標並像這樣手動定義查詢方法的URL
function PageTemplatesService($resource, $log) {
var PageTemplate = $resource('/api/websites/:websiteId/page-template/:pageTemplateId', {
pageTemplateId: '@_id',
websiteId: '@_id'
}, {
save: {
url: '/api/websites/:websiteId/page-templates',
method: 'POST'
},
query: {
url: '/api/websites/:websiteId/page-templates'
},
update: {
method: 'PUT'
}
});
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.