AngularJS 复选框不更新模型
angularJS checkbox not updating the model
我有一个带有复选框的表单,我想在提交时检查其值:
.html:
<form class="form-horizontal" role="form" name="AddUserForm" ng-submit="submit(AddUserForm)">
...
<div class="form-group">
<label for="adduser-email" class="col-xs-2 col-xl-2 control-label">email</label>
<div class="col-xs-10 col-xl-10">
<input type="email" placeholder="email" id="adduser-email" ng-model="AddUserForm.email" required>
</div>
</div>
<div class="col-xs-12 col-xl-12">
<input id="adduser-mailinglist" type="checkbox" ng-model="AddUserForm.mailinglist">Add to mailing list</input>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10 col-xl-offset-2 col-xl-10">
<button class="blue-button" type="submit" class="btn btn-default">Add User</button>
</div>
</div>
</form>
JS:
$scope.submit = function(AddUserForm) {
console.log(AddUserForm.mailinglist);
};
我越来越undefined
文本输入很好,存在于表单模型中
做了一个 plunkr:http://plnkr.co/edit/NKow0isUCp8PZy90drmA
您只需要在控制器中初始化复选框的模型:
$scope.mailinglist = false;
普伦克尔
更新的答案:
演示:http://jsfiddle.net/0ukwaug4/
这是更新 html,将提交(AddUserForm)更新为仅提交(),对象已经在范围级别定义:
<form class="form-horizontal" role="form" name="AddUserForm" ng-submit="submit()">
...
<div class="form-group">
<label for="adduser-email" class="col-xs-2 col-xl-2 control-label">email</label>
<div class="col-xs-10 col-xl-10">
<input type="email" placeholder="email" id="adduser-email" ng-model="AddUserForm.email" required>
</div>
</div>
<div class="col-xs-12 col-xl-12">
<input id="adduser-mailinglist" type="checkbox" ng-model="AddUserForm.mailinglist">Add to mailing list</input>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10 col-xl-offset-2 col-xl-10">
<button class="blue-button" type="submit" class="btn btn-default">Add User</button>
</div>
</div>
</form>
javascript:
$scope.submit = function() {
console.log($scope.AddUserForm.mailinglist);
};
取消选中时,您将获得undefined
,但在选中时会true
。
GL
由于其他人已经提供了一个有效的 plnkr,我只会让你知道为什么你的原始版本不起作用。在不使用点表示法的情况下创建属性时,即 mailinglist
不是AddUserForm.mailinglist
而是在视图的作用域上创建此属性,而不是获取控制器的作用域。使用点表示法或控制器 As 来获取控制器的范围。
通过 Egghead.IO 观看此视频以获取更全面的解释:AngularJS - 点
相关文章:
- Angular没有根据模型更新我的选择元素
- 如何使 NgJsTree 应用模型更新
- 控制器内部的scope函数不根据视图中的ng模型更新值
- Angularjs模型更新延迟
- 模型更新时触发ng显示
- 在特定模型更新后,如何让keystoneJS运行函数
- 挖空JS未从视图模型更新
- 使用Spine.Model.Ajax,如何在模型更新时处理响应的JSON中的额外属性
- 模型更新后,AngularJS 视图未更新
- 角度函数在模型更新之前触发:邮政编码检查器
- 使用 AJAX 更新的模型更新 AngularJS 视图
- 角度指令内的回调在模型更新之前调用
- AngularJS 视图在模型更新后不会更新
- 带有硬编码选项的 AngularJS 多选不会在模型更新时更新
- 角度JS模型更新不起作用
- 角度视图未根据模型更新
- AngularJS-在控制器中使用模型导致模型更新
- Angularjs:当ng模型更新时,选择不更新
- 当使用Knockout's的foreach绑定,do事件会在视图模型更新时自动清理
- 通过ng模型更新不同的$scope对象属性