我正在构建一个角度为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]属性绑定?我错过了什么吗? 提前感谢您的帮助。
答案 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。