我是Angular2的新手,但有一个小问题:
在我的Login-Component-HTML中,我有两个复选框,我想通过两种方式将数据绑定到Login-Component-TypeScript。
这是HTML:
<div class="checkbox">
<label>
<input #saveUsername [(ngModel)]="saveUsername.selected" type="checkbox" data-toggle="toggle">Save username
</label>
</div>
这是Component.ts:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Variables } from '../../services/variables';
@Component({
selector: 'login',
moduleId: module.id,
templateUrl: 'login.component.html',
styleUrls: ['login.component.css']
})
export class LoginComponent implements OnInit {
private saveUsername: boolean = true;
private autoLogin: boolean = true;
constructor(private router: Router, private variables: Variables) { }
ngOnInit() {
this.loginValid = false;
// Get user name from local storage if you want to save
if (window.localStorage.getItem("username") === null) {
this.saveUsername = true;
this.autoLogin = true;
console.log(this.saveUsername, this.autoLogin);
} else {
console.log("init", window.localStorage.getItem("username"));
}
}
login(username: string, password: string, saveUsername: boolean, autoLogin: boolean) {
this.variables.setUsername(username);
this.variables.setPassword(password);
this.variables.setIsLoggedIn(true);
console.log(saveUsername, autoLogin);
//this.router.navigate(['dashboard']);
}
如果单击复选框,则会在控制器(组件)中获得正确的值。
但是,如果我更改了例如saveUsername
组件中的值,则复选框不会“获取”新值。
因此,我无法操作Component中的复选框(就像我想在Component中的操作一样)ngOnInit
。
谢谢你的帮助!
由于saveUsername是布尔值,因此可以.selected
从saveUsername
复选框输入中删除。代替[(ngModel)]
使用[checked]="saveUsername" (change)="saveUsername = !saveUsername"
编辑:正确的解决方案:
<input
type="checkbox"
[checked]="saveUsername"
(change)="saveUsername = !saveUsername"/>
更新:
就像@newman注意到ngModel
以某种形式使用时,它将无法正常工作。但是,您应该使用如下[ngModelOptions]
属性(在Angular
7中测试):
<input
type="checkbox"
[(ngModel)]="saveUsername"
[ngModelOptions]="{standalone: true}"/> `
我正在创建一个Angular2项目,但复选框的双向绑定有问题。 我有一个名为listItem和List的类: 我正在从Azure search调用列表,该列表工作正常。问题是当我只是将值设置为复选框时。 但该值在单击时也始终为false。我试图使用[(ngModel)],但也不起作用。我还尝试创建一个函数: 但我收到了这个错误: 无法分配给对象“[object]”的只读属性“checked” 为什
我对Angular2还很陌生,我有一个小问题: 在我的Login-Component-HTML中,我有两个复选框,我希望以两种方式将它们绑定到login-component-typescript数据绑定。 这是HTML: 这是组件.ts: 如果我单击一个复选框,我会在控制器(组件)中获得正确的值。 但是如果更改组件中例如的值,则复选框不会“获取”新值。 因此我无法操作组件中的复选框(就像我想在组件
函数如下所示: 这里的重点是在任何时候都必须有一个主要项目。但是,当我选择主项并取消选中它时,函数工作得很好,保持,但是复选框仍然未选中。 我读了这篇文章和更多的文章,但没有找到一些看起来像我的案子的东西,也没有找到答案的线索。正如我对双向数据绑定的理解,当我单击复选框时,它将我的的值更改为false。但随后调用并将其设置为true。为什么复选框没有被选中?
1. 前言 本小节我们将介绍 Vue 中数据的双向绑定指令 v-model。v-model 的学习相对简单 我们可以用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。 2. 慕课解释 用 v-model 指令在表单 、 及 元素上创建双向数据绑定。它会根据控件类型自动选
出于好奇和增加知识,我想在dom元素和javascript变量之间实现某种双向数据绑定。 我很幸运,在这里@stackoverflow找到了一个很好的答案,解决了我一半的问题,这就引出了这个要点https://gist.github.com/384583,但我仍然无法100%完成这件事。 下面是我的代码示例:http://jsfiddle.net/bpH6Z/ 如果您尝试运行fiddle并单击“查
本文向大家介绍Vue实现双向数据绑定,包括了Vue实现双向数据绑定的使用技巧和注意事项,需要的朋友参考一下 Vue实现双向数据绑定的方式,具体内容如下 Vue是如何实现双向数据绑定的呢?答案是前端数据劫持。其通过Object.defineProperty()方法,这个方法可以设置getter和setter函数,在setter函数中,就可以监听到数据的变化,从而更新绑定的元素的值。 实现对象属性变化