在控制器中构建数组 AngularJS
Building array in controller AngularJS
所以我有一个这样的客户端控制器(只有相关代码):
angular.module('employees').controller('EmployeesController', ['$scope', '$stateParams', '$location', 'Authentication', 'Employees',
function($scope, $stateParams, $location, Authentication, Employees) {
$scope.authentication = Authentication;
// Create new Employee
$scope.create = function() {
// Create new Employee object
var employee = new Employees ({
name: this.name,
eid: this.eid,
availibility: [monday: this.monday, tuesday: this.tuesday]
});
使用客户端视图(同样,只有与可用性数组相关的代码)
<div class="form-group form-inline">
<label class="control-label" for="monday">Monday</label>
<label class="control-label" for="start">Start</label>
<label class="control-label" for="finish">Finish</label>
<div class="controls">
<input type="checkbox" id="monday" class="form-control" required>
<input type="time" id="start" class="form-control" required> <input type="time" id="finish" class="form-control" required>
</div>
</div>
<div class="form-group form-inline">
<label class="control-label" for="tuesday">Tuesday</label>
<label class="control-label" for="start">Start</label>
<label class="control-label" for="finish">Finish</label>
<div class="controls">
<input type="checkbox" id="tuesday" class="form-control" required>
<input type="time" id="start" class="form-control" required>
<input type="time" id="finish" class="form-control" required>
</div>
</div>
像这样的服务器控制器:
exports.create = function(req, res) {
var employee = new Employee(req.body);
employee.user = req.user;
console.log(req.body);
employee.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(employee);
}
});
};
我怎样才能让用户可以更新 "availability" 时间表?出于某种原因,当我 POST 表单时,我得到的只是 eid 和名称(在 req.body 中)。我在这里做错了什么?谁能指出我可以使用的资源方向?
此外,另一个与此有点关系的问题是:我可以使用 ngTable 来设置这些表单的样式吗?比如,我可以将表格放在 table 中吗?
感谢大家的帮助!
P.S。我意识到代码很脏(特别是 HTML 代码 + 事实上 none 我的控制器实际上正在尝试从表单中提取数据)。同样,在我知道为什么当我 POST 表单时,数据不包含在 post.
之前,我没有任何真正的理由继续该部分
要尝试的事情:
- 验证
availability
的拼写,您的创建函数中有 availibility
,这可能是您的设置有问题。
- 看起来您可能正在使用类似 mean.js 的设置。我首先确认您已将
availability
字段添加到 Employee
对象。在这种情况下,您必须使文件 app/model/employee.server.model.js
(或者您的模型定义要包含数组的地方)
_
new Employee({
name: {type: String},
eid: {type: String},
availibility: {type: Array,
default: []
}
}
最后,您的 create
函数在我看来有点古怪。我会为数组使用更标准的定义
// Create new Employee
$scope.create = function() {
// Create new Employee object
var employee = new Employees ({
name: this.name,
eid: this.eid,
availibility: [this.monday, this.tuesday]
});
所以我有一个这样的客户端控制器(只有相关代码):
angular.module('employees').controller('EmployeesController', ['$scope', '$stateParams', '$location', 'Authentication', 'Employees',
function($scope, $stateParams, $location, Authentication, Employees) {
$scope.authentication = Authentication;
// Create new Employee
$scope.create = function() {
// Create new Employee object
var employee = new Employees ({
name: this.name,
eid: this.eid,
availibility: [monday: this.monday, tuesday: this.tuesday]
});
使用客户端视图(同样,只有与可用性数组相关的代码)
<div class="form-group form-inline">
<label class="control-label" for="monday">Monday</label>
<label class="control-label" for="start">Start</label>
<label class="control-label" for="finish">Finish</label>
<div class="controls">
<input type="checkbox" id="monday" class="form-control" required>
<input type="time" id="start" class="form-control" required> <input type="time" id="finish" class="form-control" required>
</div>
</div>
<div class="form-group form-inline">
<label class="control-label" for="tuesday">Tuesday</label>
<label class="control-label" for="start">Start</label>
<label class="control-label" for="finish">Finish</label>
<div class="controls">
<input type="checkbox" id="tuesday" class="form-control" required>
<input type="time" id="start" class="form-control" required>
<input type="time" id="finish" class="form-control" required>
</div>
</div>
像这样的服务器控制器:
exports.create = function(req, res) {
var employee = new Employee(req.body);
employee.user = req.user;
console.log(req.body);
employee.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(employee);
}
});
};
我怎样才能让用户可以更新 "availability" 时间表?出于某种原因,当我 POST 表单时,我得到的只是 eid 和名称(在 req.body 中)。我在这里做错了什么?谁能指出我可以使用的资源方向?
此外,另一个与此有点关系的问题是:我可以使用 ngTable 来设置这些表单的样式吗?比如,我可以将表格放在 table 中吗?
感谢大家的帮助!
P.S。我意识到代码很脏(特别是 HTML 代码 + 事实上 none 我的控制器实际上正在尝试从表单中提取数据)。同样,在我知道为什么当我 POST 表单时,数据不包含在 post.
之前,我没有任何真正的理由继续该部分要尝试的事情:
- 验证
availability
的拼写,您的创建函数中有availibility
,这可能是您的设置有问题。 - 看起来您可能正在使用类似 mean.js 的设置。我首先确认您已将
availability
字段添加到Employee
对象。在这种情况下,您必须使文件app/model/employee.server.model.js
(或者您的模型定义要包含数组的地方)
_
new Employee({
name: {type: String},
eid: {type: String},
availibility: {type: Array,
default: []
}
}
最后,您的
create
函数在我看来有点古怪。我会为数组使用更标准的定义// Create new Employee $scope.create = function() { // Create new Employee object var employee = new Employees ({ name: this.name, eid: this.eid, availibility: [this.monday, this.tuesday] });