小编Mar*_*duk的帖子

Angular2模板驱动的异步验证器

我在模板驱动形式中定义异步验证器时遇到问题.

目前我有这样的输入:

<input type="text" ngControl="email"  [(ngModel)]="model.applicant.contact.email" #email="ngForm" required asyncEmailValidator>
Run Code Online (Sandbox Code Playgroud)

使用指向此类的验证器选择器asyncEmailValidator:

import {provide} from "angular2/core";
import {Directive} from "angular2/core";
import {NG_VALIDATORS} from "angular2/common";
import {Validator} from "angular2/common";
import {Control} from "angular2/common";
import {AccountService} from "../services/account.service";

@Directive({
selector: '[asyncEmailValidator]',
providers: [provide(NG_VALIDATORS, {useExisting: EmailValidator, multi: true}), AccountService]
})

export class EmailValidator implements Validator {
//https://angular.io/docs/ts/latest/api/common/Validator-interface.html


constructor(private accountService:AccountService) {
}

validate(c:Control):{[key: string]: any} {
    let EMAIL_REGEXP = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;

    if (!EMAIL_REGEXP.test(c.value)) {
        return {validateEmail: {valid: false}};
    }

    return null;

    /*return new Promise(resolve => …
Run Code Online (Sandbox Code Playgroud)

validation asynchronous typescript angular

15
推荐指数
1
解决办法
3288
查看次数

spyne SOAP Web 服务中的多个命名空间

我正在尝试使用 Spyne 框架和此示例代码部分在 python3 中托管 SOAP 服务:

class HelloWorldService(ServiceBase):
    @srpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(name, times):
        for i in range(times):
            yield 'Hello, %s' % name
application = Application([HelloWorldService],
    tns='spyne.examples.hello',
    in_protocol=Soap11(),
    out_protocol=Soap11()
)
if __name__ == '__main__':
    # You can use any Wsgi server. Here, we chose
    # Python's built-in wsgi server but you're not
    # supposed to use it in production.
    from wsgiref.simple_server import make_server
    wsgi_app = WsgiApplication(application)
    server = make_server('0.0.0.0', 8000, wsgi_app)
    server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

它可以工作,但它只使用一个命名空间,tns='spyne.examples.hello'.

我可以在这一行定义多个服务:

application = Application([HelloWorldService, …
Run Code Online (Sandbox Code Playgroud)

python soap spyne

3
推荐指数
1
解决办法
908
查看次数

将多个类型的列表序列化为 XML,没有根元素名称

我正在尝试在下面序列化我的对象,但没有列表的根名称我无法序列化它。Hub、Switch 和 Device 是从 AbstractNode 派生的类型。

[XmlRoot(ElementName = "Roothub")]
public class RootHub
{
    [XmlArrayItem(typeof(Hub), ElementName = "Hub20")]
    [XmlArrayItem(typeof(Switch), ElementName = "Switch")]
    [XmlArrayItem(typeof(Device), ElementName = "Device")]
    public List<AbstractNode> DevicesList { get; set; }
}

[XmlInclude(typeof(Hub))]
[XmlInclude(typeof(Device))]
[XmlInclude(typeof(Switch))]

public abstract class AbstractNode
{
    [XmlAttribute]
    public string Tag { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

输出:

<RootHub>
   <DevicesList>
      <Hub20 Tag="HUB1" VidPid="VID_0000&amp;PID_0000"/>
      <Switch Tag="SWITCH1" />
      <Device Tag="MOUSE" VidPid="VID_0000&amp;PID_0000"/>
   </DevicesList>
</RootHub>
Run Code Online (Sandbox Code Playgroud)

但我需要的是这个:

<RootHub>
   <Hub20 Tag="HUB1" VidPid="VID_0000&amp;PID_0000"/>
   <Switch Tag="SWITCH1" />
   <Device Tag="MOUSE" VidPid="VID_0000&amp;PID_0000"/>
</RootHub>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个问题的解决方案在 C# XML …

c# xml serialization

2
推荐指数
1
解决办法
1949
查看次数

使用LINQ的列表排序范围

我想知道是否可以使用LINQ进行远程排序,例如我有数字列表:

List< int > numbers = new List< int >

  • 1个
  • 2
  • 3
  • 15 <-排序
  • 11 <-排序
  • 13 <-排序
  • 10 <-排序
  • 6
  • 7
  • 等等

只需使用即可numbers.Skip(3).Take(4).OrderBy(blabla),但会返回仅包含这4个数字的新列表。是否可以以某种方式强迫LINQ在不返回新的“部分”列表的情况下自行工作或接收带有排序部分的完整列表?感谢您的回答!

c# linq sorting sql-order-by

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