由于需求的变化,我最近在我的角度项目中加入了微风。我选择breeze是因为我想从web api获取元数据,我正在使用实体框架。然而,一旦我配置了breeze,从webapi加载元数据,并将我新创建的模型绑定到我的表单上的输入框,我遇到了问题。我正在使用type =“email”属性的输入,我无法输入该输入!
我在Plunker上从Ward Bell分叉了一个项目,并将电子邮件地址上的输入类型更改为“email”,我也无法输入该输入。
我错过了什么吗?或者这是设计的行为吗?
答案 0 :(得分:0)
我想我可能发现了两个错误,但就目前而言,我没有时间继续进行调查。我只需要一个解决方案,这样我就可以继续前进。
所以这就是我发现的。当我从 breeze / metadata web api中获取元数据时,我得到:
{\"名称\":\" EmailAddress的\" \"类型\":\" Edm.String \& #34; \"最大长度\":\" 30 \" \"定长\":\"假\&#34 ; \"的unicode \":\"真\" \"可空\":\"假\"}
我确保我的EmailAddress模型中的属性属性为[EmailAddress]
(System.ComponentModel.DataAnnotations),但似乎EFContextProvider没有正确查看此属性。这是我认为一个bug所在的位置。我不确定这个项目是否是开源的,但如果是的话,我会在我有时间的时候或者如果有人已经知道了,我会很高兴知道这是一个错误还是我做错了什么
所以在我获得元数据后,然后我在实体管理器中创建我的第一个实体,如果我查看我的属性EmailAddress的验证器,它只有两个验证器,required和maxlength。所以我连接了EmailAddress验证器。
var emailProperty = newEmployee.entityType.getProperty("emailAddress");
emailProperty.validators.push(breeze.Validator.emailAddress());
我认为第二个错误是当data-z-validate
属性与<input type="email"/>
一起使用时,这会导致输入框无法使用。我对原始问题的问题是什么?为了使它工作,我只是让微风验证我的电子邮件地址,它工作正常。