Angularjs ng-модель возвращается неопределенной при передаче параметра в функцию в контроллере - PullRequest
1 голос
/ 21 января 2020

Я использую ng-model в текстовом поле struts2 и пытаюсь передать значение функции в angularjs контроллере. Возвращается с неопределенным значением. Что не так?

В приведенном ниже коде я попытался передать значение ng-model="orderDetail.idProduct" моей функции $scope.idProductNgBlur. Значение всегда находится неопределенным функцией. Вносит ли ng-repeat эту ошибку?

Ниже приведена функция

$scope.idProductNgBlur = function (){
    console.log("The $scope.orderDetail.idProduct : " + $scope.orderDetail.idProduct);
}

А в HTML у меня было это:

<div class="row" ng-repeat="orderDetail in orderDetails">
    <!-- <s:submit cssClass="btn btn-primary" ng-click="removeNewOrderDetail('{{orderDetail.id}}')" value="Remove Order Detail" /> -->
    <div class="col-md-3">
    <s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.idOrderDetail" name="orderDetails[{{$index}}].idOrderDetail" id="orderDetails[{{$index}}].idOrderDetail" placeholder="Id Order Detail" value="{{orderDetail.idOrderDetail}}" /></div>
    <div class="col-md-3">
    <s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.idProduct" name="orderDetails[{{$index}}].idProduct" id="orderDetails[{{$index}}].idProduct" placeholder="Id Product" value="{{orderDetail.idProduct}}" ng-blur="idProductNgBlur()"/></div> 
    <div class="col-md-2">
    <s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.amount" name="orderDetails[{{$index}}].amount" id="orderDetails[{{$index}}].amount" placeholder="Amount" value="{{orderDetail.amount}}" /></div>
    <div class="col-md-2">
    <s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.unitPrice" name="orderDetails[{{$index}}].unitPrice" id="orderDetails[{{$index}}].unitPrice" placeholder="Unit Price" value="{{orderDetail.unitPrice}}" /></div>
    <div class="col-md-2">
    <s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.subTotal" name="orderDetails[{{$index}}].subTotal" id="orderDetails[{{$index}}].subTotal" placeholder="Sub Total" value="{{orderDetail.subTotal}}" /></div>
</div>

1 Ответ

1 голос
/ 21 января 2020

Вы не передаете его, вы называете его.

Передача будет выглядеть примерно так:

$scope.idProductNgBlur = function (id){
    console.log("The $scope.orderDetail.idProduct : " + id);
}

И в HTML на линии, где вы вызываете передачу ng-blur , ваш заказDetail.idProduct:

<s:textfield type="text" ng-if="orderDetail.idOrderDetail" ng-model="orderDetail.idProduct" name="orderDetails[{{$index}}].idProduct" id="orderDetails[{{$index}}].idProduct" placeholder="Id Product" value="{{orderDetail.idProduct}}" ng-blur="idProductNgBlur(orderDetail.idProduct)"/></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...