标签: angularjs-ng-model

AngularJS:$ pristine用于ng-check检查输入

我有一个包含大约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

angularjs angularjs-ng-model

3
推荐指数
1
解决办法
3329
查看次数

angularJS中的动态表单验证无效

我创建了动态表单,并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

3
推荐指数
1
解决办法
2101
查看次数

取消选中复选框以使表单无效

尝试为我的表单中的复选框添加表单验证器,以防它未经检查表单将具有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如果没有检查,可以触发添加到表单的任何建议,反之亦然.

angularjs angularjs-ng-model angularjs-validation

3
推荐指数
1
解决办法
7017
查看次数

在Internet Explorer - AngularJS 1.3中未正确更新ngModel

您好,我有一个奇怪的问题,只出现在角色1.3的IE 11中.

我有一个指令,它使我能够存储ObjectngModel价值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)

javascript internet-explorer angularjs angularjs-ng-model

3
推荐指数
1
解决办法
3294
查看次数

angularjs ngModel未在选择输入中选择选项

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)

angularjs angularjs-ng-options angularjs-ng-model

3
推荐指数
1
解决办法
5274
查看次数

angularjs ng-paste不更新模型值

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有价值.我如何获得我的对象值?

angularjs angularjs-scope angularjs-ng-model

2
推荐指数
1
解决办法
6278
查看次数

Angular:在编译期间将数据传递给指令

试着这样做:

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
推荐指数
1
解决办法
3535
查看次数

Angular:更新范围内的范围

我有一个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

2
推荐指数
1
解决办法
222
查看次数

ng-selected不在选择框中使用ng-model - Angularjs

虽然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

2
推荐指数
1
解决办法
6750
查看次数

Angular js:ng-model重写了ng-repeat中的项目

我的ng-repeat数组有一个奇怪的问题.

目前,我正在列出一个数组使用,ng-repeat并放置一个编辑按钮来编辑特定项目并保存到数据库.

但问题是当item文本框中的特定ng-repeat项被更改时,项目也会更改.

这是我的问题的小提琴

https://plnkr.co/edit/D5NQitsRg7sCfZBE9IaB?p=preview

更改textfield中的值也会影响其中的值 ng-repeat

javascript angularjs angularjs-ng-repeat angularjs-ng-model

2
推荐指数
1
解决办法
267
查看次数