我目前正在学习一个AngularJS,我遇到了一个主题“角指令”.So,我计划做我自己的<custom-form>指令。
角部
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部件:
<!-- 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指令就是一个非常酷的特性。
发布于 2016-03-25 03:04:42
ng-hide="emailId == null"的问题它会立即隐藏,因为在键入完整的电子邮件地址之前,email id是无效的。空对象上的文档显示undefined==null是真的。Objects/null
使用严格的相等作为比较。
<div ng-hide="emailId === null">
<label>Email:</label>
<input type="email" ng-model="emailId"/>
</div>Plunkr:http://plnkr.co/edit/q4B6jvHvB84SqMYRAaIC?p=preview“
发布于 2016-03-25 05:01:05
@arun-shinde关于这种行为背后的原因是正确的,但是你也可以避免使用ngModelOptions:
http://codepen.io/comakai/pen/JXJPrK
<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>https://stackoverflow.com/questions/36212212
复制相似问题