小编Ank*_*nkh的帖子

Joi对象验证:如何验证具有未知密钥名称的值?

我有一个我不可能知道的关键名称的对象 - 它们是由用户创建的.但是我确实知道它们(键)将要存储的值,并且它们(值)将成为ISO字符串.如何验证这些值?并且,可选地,如何验证未知对象的键,即:

 key: Joi.string().min(2).max(25)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的是基于Joi API文档:

使用Joi.object([schema])而不是普通JS对象的另一个好处是>你可以在对象上设置任何选项,比如允许未知键,例如:

const schema = Joi.object({ arg: Joi.string().valid('firstname', 'lastname', 'title', 'company', 'jobtitle'), value: Joi.string(), }).pattern(/firstname|lastname/, Joi.string().min(2));

我从这个例子中理解的是,argkey表示Joi.object()'s' key,value代表它value.

我的例子:

campaign: Joi.object({
  arg: Joi.string().valid( 'unknown' ),
  value: Joi.date().iso(),
}).pattern( /unknown/, Joi.string().min(2).max(25) )
Run Code Online (Sandbox Code Playgroud)

我的意见;

campaign: { g_ad_adwords: "2017-01-19T11:33:26.205Z" }
Run Code Online (Sandbox Code Playgroud)

我的错误:

"广告系列"失败,因为["g_ad_adwords"不允许]

validation hapijs joi

13
推荐指数
1
解决办法
7856
查看次数

Guzzle~6.0 multipart和form_params

我正在尝试上传文件并同时发送帖子参数,如下所示:

$response = $client->post('http://example.com/api', [
    'form_params' => [
        'name' => 'Example name',
    ],
    'multipart' => [
        [
            'name'     => 'image',
            'contents' => fopen('/path/to/image', 'r')
        ]
    ]
]);
Run Code Online (Sandbox Code Playgroud)

但是我的form_params字段被忽略,我的帖子正文中只有多部分字段.我可以用guzzle 6.0发送两者吗?

php curl guzzle

11
推荐指数
3
解决办法
2万
查看次数

Angular 2 在 ngFor 中动态创建组件

我的控制器有一个我想要在页面中包含的组件列表。这些其他组件是独立创建并正常工作的。

在我的 HTML 模板中:

<ng-container *ngFor="let component of components">
    <div {{component.name}}></div>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

代码应该输出<div>这样的:

<div my-component></div>
Run Code Online (Sandbox Code Playgroud)

但事实并非如此,我收到此错误:

DOMException: Failed to execute 'setAttribute' on 'Element'
Run Code Online (Sandbox Code Playgroud)

如果我只是在 div 标签内打印值,它会很好地工作:

<div>{{component.name}}</div>
Run Code Online (Sandbox Code Playgroud)

甚至有可能实现我想要的吗?

angular

5
推荐指数
1
解决办法
3563
查看次数

Angular2 - "无法绑定到'ngSwitchWhen',因为它不是'模板'的已知属性."

我收到以下错误"无法绑定到'ngSwitchWhen',因为它不是'模板'的已知属性." 我已经阅读了建议添加的不同主题

从'@ angular/common'导入{CommonModule}

并将"CommonModule"添加到@NgModel的导入部分,我做了,但这并没有解决问题.我无法弄清楚我做错了什么,有什么帮助解决这个问题?

这是我的"app.component.ts"代码

import { Component } from '@angular/core'

@Component({
  selector: 'app-root',
  template: `
     <ul class="nav nav-pills">
        <li [class.active]="viewMode == 'map'"><a (click)="viewMode = 'map'">Map View</a></li>
        <li [class.active]="viewMode == 'list'"><a (click)="viewMode = 'list'">List View</a></li>
     </ul>
     <div [ngSwitch]="viewMode">
     <template [ngSwitchWhen]="'map'" ngSwitchDefault>Map View Content></template>
     <template [ngSwitchWhen]="'list'">List View Content</template>
     </div>
    `
})

export class AppComponent {
  viewMode = 'map';
} 
Run Code Online (Sandbox Code Playgroud)

这是"app.module.ts"的代码

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ApplicationRef } from '@angular/core';
import { FormsModule } from '@angular/forms';
import …
Run Code Online (Sandbox Code Playgroud)

typescript ng-modules angular

5
推荐指数
1
解决办法
3863
查看次数

标签 统计

angular ×2

curl ×1

guzzle ×1

hapijs ×1

joi ×1

ng-modules ×1

php ×1

typescript ×1

validation ×1