选择选项时角度4选择元素行为的问题

时间:2017-09-11 06:53:53

标签: angular typescript

我正在构建一个角度为4(v4.2.5 cli)的应用程序,我遇到了以下问题:

我正在以下列方式使用select元素:

custom_permission = Permission.objects.filter(codename='is_custom').first() # return Permission object if exists else None
if custom_permission:
    user.user_permissions.add(custom_permission)
    user.save()

Essentialy我想将选择事件绑定到我的组件类中的特定操作:

<div class="col-xs-8">
    <select class="col-xs-12" [(ngModel)]="roleId" (ngModelChange)="changeSelected($event)">
        <option *ngFor="let type of userTypes" [ngValue]="type" [selected]="type.Name === role">{{ type.Name }}</option>
    </select>
</div>

它有效,当我选择其中一个选项时,事件被触发,而字段&#34; roleId&#34;得到了设定。但是,所选项目只是从视图中消失(我保留一个空选项)。我正在用chrome测试我的解决方案。 [ngValue]属性绑定是否以某种方式干扰[selected]属性绑定?我错过了什么吗? 提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

当您想要更改选择的值时,您不需要为此触发事件。只需删除您的ngModelChange属性,您的roleId媒体资源就会以任何方式获得您选择的价值。

答案 1 :(得分:0)

您使用public Object put(Object key, Object value) { boolean result = false; Collection coll = getCollection(key); if (coll == null) { coll = createCollection(1); result = coll.add(value); if (coll.size() > 0) { // only add if non-zero size to maintain class state getMap().put(key, coll); result = false; } } else { result = coll.add(value); } return (result ? value : null); } [(ngModel)]="..." [ngModel]="...",不要将两者混合使用。再次感谢jonrsharpe。