ng-click не вызывает метод внутри контроллера angularJs - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь создать угловое приложение с нуля. Я пытался решить это часами, но я не мог заставить это работать. Все следующие файлы помещаются в родительскую папку.

index.html

<!DOCTYPE html>
<html lang="en">

<head>
  <title>Hello</title>
  <script data-require="angular.js@1.6.0" data-semver="1.6.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-app="app">
  <h1>Student App</h1>
  <section ng-controller="HelloController">
    <h4>Enter Student Details</h4>
    <label for="name">Name :</label>
    <input id="name" type="text" ng-model="student.name" />
    <p>Hello {{student.name}}!</p>
  </section>
  <button id="name" type="submit" ng-click="onButtonClick()">Click</button>

</body>

</html>

HelloController.js

  angular.module('app', [])
    .controller('HelloController', ["$scope", function($scope) {

    $scope.onButtonClick = function()
    {
        console.log("method invoked");
    };

}]);

Было бы неплохо, если бы кто-то мог помочь мне решить эту проблему, с которой я столкнулся.

1 Ответ

2 голосов
/ 17 марта 2019

Ваша кнопка находится вне <section>, контролируемого контроллером. Поэтому нажатие на него вызывает onButtonClick() в корневой области видимости, а не в области действия контроллера.

...