我有一个包含大约100个问题的表单,每个表单都有一个收音机和一些复选框,因此我需要用户能够保存表单并在以后加载它.我还需要检查用户在此会话中更改了哪些内容.
这个问题解决了这个问题:我怎样才能表示AngularJS中哪些输入字段已经改变
第二个答案(存储模型的旧值和当前值并比较两者)就可以了.但是,如果我想使用$ pristine解决方案,我有一个问题.取消选中ng-checked框不会改变它的$ pristine值.取消选中后,再次选中该复选框,$ pristine值将变为false.
我知道我不习惯使用带有ng-check的ng-model但是我从服务器得到的值为1或0.这个用作模型的值不检查复选框.
ng-model="question.answer" //will not check the box
ng-check="question.answer" //does check the box
Run Code Online (Sandbox Code Playgroud)
服务器的值为1.取消选中并选中此复选框会将其更改为"true"
<input ng-model="question.answer" ng-checked="question.answer"
type="checkbox" name="{{'answer' + question.id}}"/>
Run Code Online (Sandbox Code Playgroud)
继承人:http://plnkr.co/edit/3xcI0Yq9WPZ1IxJJjKGt?p =preview
我创建了动态表单,并ng-required动态地将属性添加到我的控件中.但现在它不起作用.
这是我的JS:
var app = angular.module('birthdayToDo', []);
app.controller('main', function($scope){
$scope.Control={};
$scope.Attributes =[
{
"Name":"FirstName",
"Required":true
},
{
"Name":"LastName",
"Required":false
},
{
"Name":"Email",
"Required":true
},
{
"Name":"Age",
"Required":false
}];
$scope.submitForm = function(isValid) {
// check to make sure the form is completely valid
if (isValid) {
alert('our form is amazing');
alert($scope.Control[1]); // to check correct index
}else{
return;
}
};
});
Run Code Online (Sandbox Code Playgroud)
我的HTML:
<html>
<head lang="en">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" />
<script src="app.js"></script>
</head>
<body ng-app="birthdayToDo" ng-controller="main">
<form name="userForm" …Run Code Online (Sandbox Code Playgroud) html javascript angularjs angularjs-ng-model angularjs-validation
尝试为我的表单中的复选框添加表单验证器,以防它未经检查表单将具有ng-invalid.
<li class="terms_checkbox"><input type="checkbox" id="checkbox_terms" name="terms" /><label for="checkbox_terms"></label></li>
<li class="accept">I have read and accept the terms and conditions</li>
Run Code Online (Sandbox Code Playgroud)
ng-invalid如果没有检查,可以触发添加到表单的任何建议,反之亦然.
您好,我有一个奇怪的问题,只出现在角色1.3的IE 11中.
我有一个指令,它使我能够存储Object的ngModel价值input元素.它对AngularJS 1.2没有任何问题,但它不适用于AngularJS 1.3(仅在Internet Explorer中).
它只是代码:
elem.on('input', function(){
var val = elem.val();
ngModel.$setViewValue({
'sampleData': new Date().getTime(),
'value': val
});
scope.$apply();
});
Run Code Online (Sandbox Code Playgroud)
当我在IE中键入文本时,输入将正确的对象设置为模型值几毫秒,但接下来将其更改为字符串.在其他浏览器中,它ngModel正确更新.
你可以在那里看到这种奇怪的行为:
AngularJS 1.2:http://jsfiddle.net/aartek/e6Lvpqj3/(适用于IE,Chrome和Firefox),
AngularJS 1.3:http://jsfiddle.net/aartek/mvx9dbyu/2/(在IE 11中不起作用,适用于Chrome和Firefox)
是什么原因,我该如何解决?
这是我的全部指示:
app.directive('myInput',function(){
return{
restrict: 'A',
require: 'ngModel',
scope: {},
priority: 1,
link: function(scope, elem, attrs, ngModel){
elem.off('input');
elem.off('change');
ngModel.$render = function(){
var model = {
'sampleData': 'sampleData',
value: ''
}
ngModel.$setViewValue(model);
elem.val(model.value); …Run Code Online (Sandbox Code Playgroud) ngModel对输入类型文本的工作方式是否不同并选择?未选择选择控件以反映初始模型值.
当我更改select,input和currentUser.field的值也会改变,但如果我将输入文本的值更改为另一个键,则没有任何选择.
{{currentUser.field}} // show correct field field key (number) val
// ng-model works => show correct field key (number) val
<input ng-model="currentUser.field" type="text" />
// <option value="?" selected="selected" label=""></option> is selected
<select ng-model="currentUser.field"
ng-options='item.key as item.value for item in currentUser.collections.field '>
</select>
// only works with input text and {{currentUser.field}}
<button ng-click='currentUser.field = 305'>select field (int)</button>
<button ng-click='currentUser.field = "305"'>select field (string)</button>
Run Code Online (Sandbox Code Playgroud) 我ng-paste在textarea中粘贴链接时使用了textarea,我正在调用一个自定义函数来存储该值.请参考以下代码
<textarea rows="1" ng-model="myObj.content"
ng-paste="getContent(myObj)">
</textarea>
$scope.getContent = function(a){
console.log(a.content);
}
Run Code Online (Sandbox Code Playgroud)
但在控制台总是我undefined有价值.我如何获得我的对象值?
试着这样做:
var data = {some: 'data'}
var subcomponent = $compile('<div component-' + componentName + ' ng-model="'+data+'"></div>')($scope);
$element.find('.container').html( subcomponent[0] );
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []] at column 9 of the expression [[object Object]] starting at [Object]]
Run Code Online (Sandbox Code Playgroud)
试图将这些数据放到link范围内.有没有办法将数据传递到指令范围?
javascript angularjs angularjs-directive angularjs-scope angularjs-ng-model
我有一个2个范围的控制器:
app.controller('search', function($scope) {
$scope.value1 = '';
$scope.value2 = 'Some text' + $scope.value1;
}
Run Code Online (Sandbox Code Playgroud)
和输入字段:
<input type="text" ng-model="value1">
Run Code Online (Sandbox Code Playgroud)
当我使用输入字段(有效)更改value1时,value2不会更新.我怎样才能做到这一点?
javascript angularjs angularjs-scope angularjs-ng-change angularjs-ng-model
虽然ng-model用于选择框,ng-selected也用于选项,其中某些条件是ng-selected时间不起作用.
如果我将删除ng-model而不是ng-selected正在工作,但是如果我将删除ng-model而不是我应该如何获得控制器中选择框的值.
请帮忙 !
这是我的代码......
HTML:
<select class="form-control" ng-change="accessModeSelected()">
<option ng-selected="mode.status == '1'" ng-repeat="mode in storageResult.accessMode" ng-value="mode.name" name="accessMode{{$index}}" id="accessMode">
{{mode.name}}
</option>
</select>
Run Code Online (Sandbox Code Playgroud)
AngularJS:
$scope.storageResult = {
"storageAccount":"Enable",
"user": "sdcard",
"pass": "sdcard",
"wifiIP": "0",
"ipAddr": "0",
"accessMode": [
{"name": "Local Storage","status": "0"},
{"name":"WiFi Storage", "status": "1"},
{"name":"Internet Storage", "status": "0"}
]
}
Run Code Online (Sandbox Code Playgroud) angularjs angularjs-ng-repeat angularjs-ng-model angularjs-select
我的ng-repeat数组有一个奇怪的问题.
目前,我正在列出一个数组使用,ng-repeat并放置一个编辑按钮来编辑特定项目并保存到数据库.
但问题是当item文本框中的特定ng-repeat项被更改时,项目也会更改.
这是我的问题的小提琴
https://plnkr.co/edit/D5NQitsRg7sCfZBE9IaB?p=preview
更改textfield中的值也会影响其中的值 ng-repeat