Ng模型未在angularjs中采用默认ng值

时间:2016-10-06 12:24:29

标签: angularjs

我输入的默认值为0,但此值未获得 我的js得到错误未定义,如果我输入它显示的任何值。 但我想显示默认值

<tr ng-repeat="r in rvm" >
                <td>
                    <input type="text" lass="input-large" ng-value="2.00" ng-model="rvm.val1" name="val1" />
                </td>
                <td>
                    <button type="button" class="btn btn-default" ng-click="addRow1()">Add</button>
                </td>
                        </tr>

JS

var ReceiptsApp = angular.module('ReceiptsApp', []);

ReceiptsApp.controller('ReceiptsController', function ($scope) {
 $scope.rvm = [{}];
   $scope.addRow1 = function ( ) {
        alert($scope.rvm.val1);
    }
       });

js bin链接在这里

enter link description here

4 个答案:

答案 0 :(得分:0)

只需在控制器中设置默认值:

ReceiptsApp.controller('ReceiptsController', function ($scope) {

  $scope.rvm.val1 = 'your default value';
});

如果您阅读this link about ngValue,您会看到它不应该与普通输入一起使用(当您还在其上设置ng-model时),而是radio输入和option元素。您最好的解决方案是在控制器中设置值,就像您应该做的那样。

  

时,它也可用于实现给定表达式与输入元素(如input [text]或textarea)的单向绑定strong>使用ngModel。

答案 1 :(得分:0)

您可以在控制器内设置

ReceiptsApp.controller('ReceiptsController', function ($scope) {

  $scope.rvm.val1 = '0.00';
});

或使用ng-init

<input type="text" lass="input-large" ng-init="rvm.val1='0.00'" ng-model="rvm.val1" name="val1" />

答案 2 :(得分:0)

<input type="text" lass="input-large" ng-value="2.00" ng-model="rvm.val1" name="val1" />

问题是您使用rvm.val1 rvm array而不是object中的array

ng-model="rvm.val1"更改为ng-model="r.val1"

然后您就可以单独跟踪每个值。

为了初始化值

<tr ng-repeat="r in rvm" ng-init="r.val1= 2.00">

然后在

 $scope.addRow1 = function (index) {
       // access individual object in rvm..
       alert($scope.rvm[index].val1);
       // push a new object
       $scope.rvm.push({});
   }

JSBin

如果您不想使用ng-init

你可以这样做

每次推送新项目时,都会初始化val1

$scope.rvm.push({val1:  2.00});

JsBin

答案 3 :(得分:0)

var ReceiptsApp = angular.module('ReceiptsApp', []);

ReceiptsApp.controller('ReceiptsController', function ($scope) {
    $scope.rvm = [{}];
    $scope.rvm.val1=0;
    $scope.addRow1 = function ( ) {
        if($scope.rvm.val1 == ''){
            $scope.rvm.val1=0;
            alert($scope.rvm.val1);
        } else {
            alert($scope.rvm.val1);
        }
    }
});

嗨我已经采取了if条件,我在检查输入字段是否为空,然后它将初始化$scope.rvm.val1=0;并显示在警报中。 它会起作用