HTML
<div>
<input ng-model="tripsheet.tripsheet_num" type="text">
</div>
JS
$scope.getTotalTripsheets = function()
{
return $scope.tripsheets.length;
};
我希望上面的数据(getTotalTripsheets)能够输入标签中的默认输入,在上面的代码中,我从数据库表中获取长度并尝试将其作为输入字段中的默认数据。
我尝试过这样的事情(如下),它不起作用,我该怎么办呢?
$scope.tripsheet = function()
{
$scope.tripsheet_num = !$scope.getTotalTripsheets;
};
答案 0 :(得分:0)
你正在输入一个tripheet.tripsheet_num模型,这意味着在$ scope上会有一个名为tripsheet.tripsheet_num的属性(我想,不确定因为它会实际做什么。)< / p>
但是我确实知道,当你将tripheet num作为一个函数时,它会覆盖之前的任何内容,你应该丢失.tripshee_num属性。你的结构应该更像这样。
$scope.tripsheet = {}
$scope.tripsheet.tripsheet_num = "default value";
如果tripheet是一个数组,那么将输入的模型更改为&#34; tripsheetLength&#34;并将代码更改为此。
<input ng-model="tripsheetLength" type="text">
$scope.tripsheets = ['info1', 'info2']
$scope.tripsheetLength = $scope.tripsheets.length; // length here is 2
答案 1 :(得分:0)
如果您只想要一次/单向绑定到Array
的长度,请使用ng-value
代替ng-model
:
<input ng-value="tripsheets.length" type="text">
如果您的双向绑定可以从默认值更改:
$scope.tripsheet = {
tripsheet_num: $scope.tripsheets.length
};
<input ng-model="tripsheet.tripsheet_num" type="text">
plunker中的示例:http://plnkr.co/edit/UM4lyGZSxB1mEcpy9CqJ?p=preview
最后,听起来您可能正在远程调用数据库,因此您可以使用以下策略:
$scope.tripsheet = {
$resolved: false,
tripsheet_num: null
};
远程调用成功后,将$resolved
设置为true
并设置tripsheet_num
的值。在HTML中你可以这样做:
<input ng-disabled="!tripsheet.$resolved" ng-model="tripsheet.tripsheet_num" type="text">
解决关于plunker的示例:http://plnkr.co/edit/q2Ua8KGqWr6HDphe92q0?p=preview