AngularJS создает двустороннюю привязку данных между контроллером и представлением.Чтобы включить двустороннее связывание, вы должны использовать $scope
$scope
- встроенный объект, содержащий данные и методы приложения.Вы можете создать свойства для объекта $ scope внутри функции контроллера и присвоить ему значение или функцию.$ Scope - это клей между контроллером и представлением (HTML).
В вашем примере метод loadSearch
не связан с $scope
, поэтому он не доступен в представлении.Чтобы исправить это, $scope.loadSearch
- правильный путь.
Более того, вам не нужно передавать searchkey
функции, поскольку она связана с ng-model
и доступна в области действия контроллера.Вы можете легко alert($scope.searchKey)
в контроллере.
См. Фрагмент кода ниже для справки.
angular.module("app", []).controller('myCtrl', function($scope, $http) {
$scope.loadSearch = function() {
alert($scope.searchKey);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<body ng-app="app" ng-controller="myCtrl">
<input type="text" ng-model="searchKey">
<button type="button" ng-click="loadSearch()">Search</button>
</body>