在控制器中构建数组 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]
        });