我输入的默认值为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链接在这里
答案 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({});
}
如果您不想使用ng-init
你可以这样做
每次推送新项目时,都会初始化val1
$scope.rvm.push({val1: 2.00});
答案 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;
并显示在警报中。
它会起作用