首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular js ng-click ng-controller和ng-app

angular js ng-click ng-controller和ng-app
EN

Stack Overflow用户
提问于 2020-04-13 14:59:12
回答 1查看 68关注 0票数 0

我无法让angularJS识别ng-app、ng-controller或ng-click中定义的变量。

到目前为止,我尝试过的3组代码是:

代码语言:javascript
复制
<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>
代码语言:javascript
复制
<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>
代码语言:javascript
复制
<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中调用它,但它不起作用。

代码语言:javascript
复制
clickTest() {
   console.log('1');
}

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

当我点击"someButton“时没有打印%1,而

代码语言:javascript
复制
clickTest() {
   console.log('1');
}

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

当我单击相同的按钮时,确实打印了%1。

因此,我想知道ng-app、ng- <tbody>和ng-click是否需要某种类型的初始化,或者它们必须在<tbody>中,或者任何其他建议,为什么上面所有在示例中运行良好的代码在表中都不运行。

EN

回答 1

Stack Overflow用户

发布于 2020-04-14 02:28:00

代码语言:javascript
复制
    <!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;

代码语言:javascript
复制
var app = angular.module('ngClickApp', []);
app.controller('ngClickCtrl', function($scope) {
  $scope.clkCount = 0;
});
代码语言:javascript
复制
<!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的末尾,或者放在HTML中body标记的上方,这样页面加载速度就会更快,因为javascript代码可能会阻止/延迟加载过程。尽量不要在同一文件中使用脚本、CSS或HTML,以保持代码易于阅读、维护和修改。谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61182903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档