У меня есть фильтр поиска в таблице, и я дал для него имя ng-модели как selectedGcode. Я вызываю ng-click = viewAccount () для того, чтобы вызывать функцию при нажатии. Но я получаю $ scope.selectedGcode в моем контроллере как undefined.
HTML:
<table class="table table-striped">
<thead>
<tr class="myheading">
<th class="col-sm-2"> Code
</th>
<th class="col-sm-2">Name
</th>
</tr>
<tr>
<th class="col-sm-2" >
<input type="text" class="form-control" ng-model="selectedGcode" placeholder="Search" ng-click="viewAccount()" /></th>
<th class="col-sm-2" >
<input type="text" class="form-control" /></th>
<tr>
<tbody>
<tr data-ng-repeat="data in tableData">
<td class ="stylethecontent" >{{ data.groupzcode}}</td>
<td class ="stylethecontent" >{{data.groupzname}}</td>
</tr>
</tbody>
</table>
JS:
$scope.viewAccount = function(){
var json = {
"json": {
"request": {
"servicetype": "6",
"functiontype": "6014",
"session_id": $rootScope.currentSession,
"data": {
"shortname": $scope.selectShortName,
"groupzcode":$scope.selectedGcode
}
}
}
};
UserService.viewListAccount(json).then(function(response) {
console.log(json);
if (response.json.response.statuscode == 0 && response.json.response.statusmessage == 'Success')
$scope.tableData = response.json.response.data;
});
};
3 ответа
Если вы хотите запускать viewAccount () каждый раз при вводе чего-либо, вы должны использовать ng-change а>.
<input type="text" class="form-control" ng-model="selectedGcode" placeholder="Search" ng-change="viewAccount()" /></th>
Если вы хотите запускать viewAccount () специально при щелчке мышью, вам следует использовать вместо этого кнопку.
<input type="text" class="form-control" ng-model="selectedGcode" placeholder="Search"/></th>
<button type="button" class="btn btn-default" ng-click="viewAccount()"></button>
Вы должны использовать «ng-model» или «data-ng-model», а не просто «model =« selectedGcode »« И вы можете использовать ngKeyup вместо ngClick. Потому что ngClick будет запускаться только тогда, когда пользователь щелкнет форму ввода, а не когда он что-то напишет.
Используйте 'ng-model' вместо ключевого слова 'model' в <input>
, чтобы получить значение в контроллере.
Похожие вопросы
Связанные вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].