将相同的模型变量绑定到单选按钮和输入文本
Binding the same model variable to radio buttons and input-text
我想使用AngularJS UI进行管理,该UI允许选择其中一个选项(显示为单选按钮组(或在输入文本中键入的自定义值。
它应该看起来像:http://jsbin.com/foyujali/7/edit
这是你也可以在下面的链接中看到的代码:
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.js"></script>
<div ng-app="tagsApp" ng-controller="TagsCtrl">
<input type="radio" id="conversion_type_sale" ng-model="tag.conversion_type" value="sale"/>
<label for=conversion_type_sale>Sale</label>
<input type="radio" id="conversion_type_lead" ng-model="tag.conversion_type" value="lead"/>
<label for=conversion_type_lead>Lead</label>
<input type="radio" id="conversion_type_custom" ng-model="tag.conversion_type" value="{{tag.conversion_type_custom_value}}"/>
<input type="text" placeholder="Custom" ng-model="tag.conversion_type_custom_value" id="conversion_type_custom_value"/>
<p>
The choosen conversion type is: <strong>{{tag.conversion_type}}</strong>
</p>
</div>
和JS:
angular.module('tagsApp', []).
controller('TagsCtrl', function ($scope) {
$scope.tag = {conversion_type: 'lead'};
});
我不想使用ngChange指令,所以我只将value
或ng-value
(我尝试了两者(绑定到输入文本的模型。这种方式不能正常工作,但我想有一个优雅的AngularJS解决方案。有什么建议吗?
提前感谢!
p。S.只是澄清一下-我想要以下功能:http://jsbin.com/foyujali/10/edit但我想避免使用ngChange指令
这就是您想要的:http://jsfiddle.net/colares/shcv8e1h/2/
导出行为
- 通过关注文本字段,选择左侧的单选按钮,并根据文本字段的值更新所选值
- 通过关注文本字段左侧的单选按钮,所选值也会根据文本字段中的内容进行更新
- 通过更改文本字段的值,所选的值也会更新
- 最后,通过关注任何其他标签或单选按钮,自定义值将保留,而所选值将更新所选选项
为此,我不得不在自定义选项输入中使用更多的东西:
- ng焦点:当我点击文本字段时,它会更新所选的文本字段值
- ng更改:当我更新文本字段时,最终值也会更新
- ng模型:存储辅助变量
customColor
,无论所选值如何,该变量都保持不变 - 请记住,当我们选择给定表达式时,ng值用于设置单选(或
<option>
(的值。这会使单选和输入文本"绑定",因为它们具有相同的值
您可以使用$scope$观察并查找控制器的变化,如下所示:
http://jsfiddle.net/2R6aN/
var app = angular.module('tagsApp',[]);
app.controller('TagsCtrl', function ($scope) {
$scope.tag = {conversion_type: 'lead'};
$scope.$watch('conversion_type_custom_value',function(new_val) {
if (new_val) {
$scope.tag.conversion_type = new_val;
}
});
});
$watch是最佳选择。此外,不用在$watch的第一个参数中使用modelName,您可以创建自己的东西(例如,观察输入框的长度(,并使用第二个参数对其执行所需的操作。
相关文章:
- 互斥单选按钮和相应的输入字段
- 选择单选按钮更新2个输入字段
- 启用特定输入上的单选按钮
- 整数 + 2x 单选按钮设置输入 --> 输出
- 使用HTML和Javascript,使用4个单选按钮显示和隐藏输入字段
- 基于输入值的单选按钮选择
- 如何基于单选按钮切换启用/禁用输入字段
- 如何在javascript或ajax中获取输入单选按钮值并显示/隐藏按钮
- 如果用户更改下拉选择,jQuery将删除单选按钮/输入选项
- 如何在选中单选按钮(输入)时触发事件
- 根据选定的单选按钮输入显示/隐藏 DIV
- 根据单选按钮输入将表单发送给不同的收件人
- 单选按钮输入控制客户端验证
- 如何使用单选按钮输入禁用表单的某些元素
- 单选按钮输入字段的JavaScript函数
- 无法使用JavaScript/jQuery动态删除单选按钮输入字段
- 使用jQuery存储单选按钮输入的数值
- Javascript:从两个文本输入和一个单选按钮输入生成URL
- 将单选按钮输入添加到文本框输入中,并将其存储在列表中
- 获取单选按钮输入的未定义值