如何用角度改变输入类型

时间:2013-12-23 07:37:36

标签: angularjs

我读过一些关于在更改和输入类型时使用ng-switch或指令的帖子。 我现在有了这段代码,但它非常重复。

<input ng-change="change();" ng-if="! item.data && item.mapping == 'password'" 
type="password" class="login-input" id="{{item.mapping}}" 
ng-model="item.content" placeholder="{{item.name | mandatory:this.item.minLength }}"
ng-minlength="{{item.minLength}}"> 

<input ng-change="change();" ng-if="! item.data &&  item.mapping != 'password'"
type="text" class="login-input" id="{{item.mapping}}" ng-model="item.content"
placeholder="{{item.name | mandatory:this.item.minLength }}"
ng-minlength="{{item.minLength}}"> 

我只想改变类型。如何用角度减少干燥?更改类型时如何使用指令?

1 个答案:

答案 0 :(得分:1)

如果您输入的属性相似,则可以在此输入字段

之外创建模板
<script id="others" type="ng/template">
    <input ng-change="change();" class="login-input" id="{{item.mapping}}" ng-model="item.content"
      placeholder="{{item.name | mandatory:this.item.minLength }}"
      ng-minlength="{{item.minLength}}"> 
</script>


<script id="password" type="ng/template">
    <input ng-change="change();" class="login-input" id="{{item.mapping}}" ng-model="item.content"
      placeholder="{{item.name | mandatory:this.item.minLength }}"
      ng-minlength="{{item.minLength}}"> 
</script>

然后使用ng-include将输入控件添加到您想要的位置

<ng-include src="item.mapping == 'password'?item.mapping:'others'"></ng-include>

您可以使用ng-init将数据传递到模板以使其可重复使用。

还记得ng-include创建了一个新范围。