首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用角指令的自定义格式的电子邮件字段在我输入时会消失。

使用角指令的自定义格式的电子邮件字段在我输入时会消失。
EN

Stack Overflow用户
提问于 2016-03-25 00:22:39
回答 2查看 218关注 0票数 0

我目前正在学习一个AngularJS,我遇到了一个主题“角指令”.So,我计划做我自己的<custom-form>指令。

角部

代码语言:javascript
复制
app.directive('customForm', [function(){
	return {
		scope: {
			userName : '@',
			passWord : '@',
			emailId : '@',
			telPhone : '@',
			address : '@',
			city : '@',
			state : '@',
			country : '@',
			pinCode : '@',
		},
		controller: 'FormController',
		restrict: 'AE',
		templateUrl: 'tpls/form.html',
		
	};
}]);

app.controller('FormController', [function(){
	var self  = this;
	self.username = "hemal";
	self.passWord = "passWord";
}]);

HTML部件:

代码语言:javascript
复制
<!-- index.html -- >
<!-- <div ng-controller="FormController as fc">
            <custom-form user-name pass-word email-id tel-phone country pin-code>
            </custom-form>

        </div> -->

<!-- tpls/form.html -->
<div ng-hide="userName == null">
    <label>Name:</label>
    <input type="text" ng-model="userName"></input>
</div>
<div ng-hide="passWord == null">
    <label>Pass:</label>
    <input type="text" ng-model="passWord"></input>
</div>
<div ng-hide="emailId == null">
    <label>Email:</label>
    <input type="email" ng-model="emailId"></input>
</div>
<div ng-hide="telPhone == null">
    <label>telephone:</label>
    <input type="tel" ng-model="telPhone"></input>
</div>

<div ng-hide="address == null">
    <label>Address:</label>
    <input type="text" ng-model="address"></input>
</div>
<div ng-hide="city == null">
    <label>city:</label>
    <input type="text" ng-model="city"></input>
</div>
<div ng-hide="state == null">
    <label>state:</label>
    <input type="text" ng-model="state"></input>
</div>
<div ng-hide="country == null">
    <label>country:</label>
    <input type="text" ng-model="country"></input>
</div>
<div ng-hide="pinCode == null">
    <label>pincode:</label>
    <input type="text" ng-model="pinCode"></input>
</div>

现在我面临的问题是:

1.一旦我开始输入表单的电子邮件字段,电子邮件字段就会得到vanished.But,这不是其他字段的问题,它们非常好。

2.如果我在电子邮件字段中设置type="text“,而不是type=" email "...it工作.我只是无法理解这种行为。

因此,如果您能帮助我理解这种奇怪的行为,那么appreciative...coz指令就是一个非常酷的特性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-25 03:04:42

ng-hide="emailId == null"的问题它会立即隐藏,因为在键入完整的电子邮件地址之前,email id是无效的。空对象上的文档显示undefined==null是真的。Objects/null

使用严格的相等作为比较。

代码语言:javascript
复制
<div ng-hide="emailId === null">
    <label>Email:</label>
    <input type="email" ng-model="emailId"/>
</div>

Plunkr:http://plnkr.co/edit/q4B6jvHvB84SqMYRAaIC?p=preview

票数 1
EN

Stack Overflow用户

发布于 2016-03-25 05:01:05

@arun-shinde关于这种行为背后的原因是正确的,但是你也可以避免使用ngModelOptions:

http://codepen.io/comakai/pen/JXJPrK

代码语言:javascript
复制
<div ng-app="app">
    <p>
        <input type="email" ng-model="a" />
    </p>
    <p>{{ a }}</p>
    <p>
        <input type="email" ng-model="b" ng-model-options="{allowInvalid: true}" />
    </p>
    <p>{{ b }}</p>
</div>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36212212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档