angular js ng-click нг-контроллер и нг-приложение - PullRequest
0 голосов
/ 13 апреля 2020

Я не могу получить angularJS для распознавания переменной, определенной в ng-app, ng-controller или ng-click.

3 набора кодов, которые я пробовал до сих пор:

<table>
   <thead>
      <tr>
         <script>
            var app = angular.module('ngClickApp', []);
            app.controller('ngClickCtrl', function ($scope) {
               $scope.clkCount = 0;
            });
         </script>
         <th ng-app="ngClickApp" ng-controller="ngClickCtrl">
             <button class="some-scss" ng-click="clkCount = clkCount +1">
                 <b>someCol {{ clkCount }}</b>
             </button>
         </th>
<table>
   <thead>
      <tr ng-app="ngClickApp">
         <th><button class="some-scss" ng-controller="ngClickCtrl"><b>someCol {{ clkCount }}</b></button></th>
         <script>
            var app = angular.module('ngClickApp', []);
            app.controller('ngClickCtrl', function ($scope) {
               $scope.clkCount = 0;
            });
         </script>
<table>
   <thead>
      <tr ng-app="ngClickApp">
         <th><button class="some-scss" ng-controller="ngClickCtrl"><b>someCol {{ clkCount }}</b></button></th>
         <script>
            var ngClickCtrl = function ($scope) {
               $scope.clkCount = 0;
            };
         </script>

Всем трем не удалось распознать clkCount.

Примеры, которые я обнаружил, не используют формат таблицы. (https://www.tutorialsteacher.com/angularjs/angularjs-scope) или (https://www.tutlane.com/tutorial/angularjs/angularjs-ng-click-event-function-with-example)

Кроме того, просто из любопытства, чтобы проверить ng-click в первом коде, я определил некоторую функцию и вызвал его в ng-click, но он не работал.

clickTest() {
   console.log('1');
}

<th><button class="some-scss" ng-click="clickTest()">someButton</button></th>

не печатал 1, когда я нажимал "someButton", тогда как

clickTest() {
   console.log('1');
}

<th><button class="some-scss" (click)="clickTest()">someButton</button></th>

печатал 1, когда я щелкал та же кнопка.

Итак, мне было интересно, нужны ли ng-app, ng-controller и ng-click какой-либо тип инициации или они должны быть в <tbody> или любых других предложениях, почему все вышеперечисленное коды, которые отлично работали в примерах, не работают в таблицах.

1 Ответ

0 голосов
/ 13 апреля 2020
    <!DOCTYPE html>
<html lang="en-US">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<table>
     <thead>
      <tr ng-app="ngClickApp">
         <th>
           <button class="some-scss" ng-controller="ngClickCtrl" ng-click="clkCount=clkCount+1"><b>someCol {{clkCount}}</b></button>
          </th>
         </tr>
      </thead>
</table>
</body>
</html>
<script>
   var app = angular.module('ngClickApp', []);
   app.controller('ngClickCtrl', function ($scope) {
      $scope.clkCount = 0;

var app = angular.module('ngClickApp', []);
app.controller('ngClickCtrl', function($scope) {
  $scope.clkCount = 0;
});
<!DOCTYPE html>
<html lang="en-US">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
  <table>
    <thead>
      <tr ng-app="ngClickApp">
        <th>
          <button class="some-scss" ng-controller="ngClickCtrl" ng-click="clkCount=clkCount+1"><b>someCol {{clkCount}}</b></button>
        </th>
      </tr>
    </thead>
  </table>
</body>
</html>

Привет, Вы не должны помещать скрипт в таблицу. Необходимо сохранить скрипт в отдельном файле или в конце HTML или чуть выше тега body внутри HTML, чтобы страница загружалась быстрее, поскольку код javascript может заблокировать / задержать процесс загрузки. Старайтесь не использовать скрипты CSS или HTML в одном и том же файле, чтобы код легко читался, обслуживался и изменялся. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...