环回、AngularJS 和验证

Loopback, AngularJS and validation

我按照本教程创建了一个带有 Loopback 和 AngularJs 的项目。 https://github.com/strongloop/loopback-example-angular

现在,我有一个应用程序:

模型"Device"定义在./common/models/device.js

module.exports = function(Device) {
};

并在./common/models/device.json

{
  "name": "Device",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "name": {
      "type": "string",
      "required": true
    },
    "description": {
      "type": "string",
      "required": true
    },
    "category": {
      "type": "string",
      "required": true
    },
    "initialDate": {
      "type": "date"
    },
    "initialPrice": {
      "type": "number",
      "required": true
    },
    "memory": {
      "type": "number"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

在 "AddDeviceController" 中,我有一个初始化部分:

$scope.device = new DeviceToBuy({
  name: '',
  description: '',
  category: '',
  initialPrice: 0,
  memory: 8
  initialDate: Date.now()
});

而且我可以在执行以下方法时保存 $scope.device:

  $scope.save = function() {
     Device.create($scope.device)
      .$promise
      .then(function() {
        console.log("saved");
        $scope.back(); // goto previous page
      }, function (error) {
        console.log(JSON.stringify(error));
      });
  }

当一切都有效时,模型被保存在后台。如果 $scope.device 中的某些内容无效,我会从后端收到错误消息。所以一切正常。

现在,我想在将我的模型发送到后端之前使用该模型执行客户端验证,并在 bootstrap 控件上放置一些 "error-class"。

在发送到后端之前,我在 $scope.save 函数中尝试了一些东西:

if ($scope.device.isValid()) {
  console.log("IsValid");
} else {
  console.log("Not Valid");
}

但我遇到异常 "undefined is not a function" --> isValid() 不存在。 而且我找不到任何关于如何执行此客户端验证的示例。

LoopBack 模型没有意见,因此不提供开箱即用的客户端验证。在调用 $save.

之前,你应该使用 Angular 验证机制