访问表单控制AngularJS中的值,而不绑定数据
Access form controls values in AngularJS without data binding
我有一个由轨道脚手架生成的表单,它可以正确工作。我想在这个表单中添加一个新的Angular控制器来计算一种分数/进度条,向用户显示他的应用程序完成的百分比。
我在更新中遇到了一个问题。实际上,
- Rails正在为表单控件赋值
- ngModel正在重置该控制器,因为我没有初始化javascript部分中的值
在下面的代码中,在编辑期间,side_id控件变为空。
有没有一种干净的方法可以在不进行任何数据绑定的情况下读取不同控件的表单?
<ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
<li class="active"><a href="#general" data-toggle="tab">Données générales</a></li>
<li><a href="#location" data-toggle="tab">Location</a></li>
<li><a href="#suppl" data-toggle="tab">Données supplémentaires</a></li>
<li><a href="#photos" data-toggle="tab">Photos</a></li>
</ul>
<div id="my-tab-content" class="tab-content">
<div class="tab-pane mypanel active" id="general">
<br/>
<div class="form-group">
<div class="col-md-2">
<div class="field">
<%= f.label :side_id %><br>
<%= f.collection_select(:side_id, Side.all,:id,:label,{}, {:class => "form-control", "ng-model" => "side_id"}) %>
{{side_id}}
</div>
</div>
<div class="col-md-4">
<div class="field">
您可以创建指令来初始化ngModel
中的值,默认值来自html
。
jsfiddle上的实例。
angular.module('ExampleApp', [])
.controller('ExampleController', function($scope) {
$scope.options = [{
id: 0,
name: "No"
}, {
id: 1,
name: "Yes"
}, {
id: 2,
name: "Unknow"
}];
})
.directive('initValue', function() {
return {
restrict: "A",
require: "ngModel",
scope: {
initValue: "=",
ngModel: "="
},
link: function(scope) {
scope.ngModel = scope.initValue;
}
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="ExampleApp">
<div ng-controller="ExampleController">
<input ng-model="id" init-value="'dfdffd'">
<pre>id={{id}}</pre>
<select ng-model="idSelect" init-value="'2'">
<option value="0">No</option>
<option value="1">Yes</option>
<option value="2">Unknow</option>
</select>
<pre>idSelect={{idSelect}}</pre>
<select ng-model="idSelect2" init-value="1" ng-options="item.id as item.name for item in options">
</select>
<pre>idSelect2={{idSelect2}}</pre>
</div>
</div>
side_id = angular.element('#classified_side_id').val();
此外,我正在使用事件查找元素值的更改。
相关文章:
- 在Knockout中绑定数据后获取数据
- 使用Angular not Binding引导模式绑定数据
- FusionCharts MVC - JSON Result 未绑定数据
- 如何在 js / jquery 中绑定“数据追加”事件
- AngularJS如何绑定数据
- AngularJs的Kendo UI:当用户在网格中选择行时,如何在文本框字段上绑定数据
- angularjs:自定义直接中的绑定数据在使用“”后不再更新;track-by-;在ng重复中
- 访问表单控制AngularJS中的值,而不绑定数据
- 使用d3.js在绑定数据内数组(以恒定性动态生成d3.svg.line)
- 在 Angular 中的控制器之间绑定数据
- 在网格视图中显示不同的消息,用于没有绑定数据和未检索到结果
- kendoui 网格,当自动绑定配置设置为 false 时绑定数据
- 在 d3.js 中重新绑定数据的最佳方法
- 绑定数据在 d3.js 中不起作用
- 当本地绑定数据为整数时,对剑道 UI 网格进行筛选
- 控制器外部的角度绑定数据
- 在点击事件上获取绑定数据
- 使用下拉列表绑定数据
- 如何在 d3.js 中更新绑定数据
- 如何在 Handlebars.js 模板上绑定数据以进行自动值更新