【发布时间】:2020-04-10 06:00:34
【问题描述】:
我正在尝试使用 ng-click 和 ng-init 使表头排序器工作。
Angular js 文档中的示例需要模块,如果我安装和更新该模块,我的 SPA 会因某种原因而崩溃。我试图让它工作,但即使在其他同事的帮助下,它也失败了。
所以,我想到了绕过,想出了 ng-click 和 ng-init。如果我计算点击次数,那么每偶数点击,表格按升序排序,每奇数点击,表格按降序排序。
我可以使用 (click) 进行一次点击和一次排序(例如,一次点击 - 升序 - 无论我点击多少次都可以完成)。但是,当我使用 ng-click 和 ng-init 时,无法识别 ng-init 中的变量。
<th><button class="some-type" ng-click="count = count + 1; oddEven(count)? sortByAsc(column) : sortByDes(column)" ng-init="count = 0"><b>columnName</b></button></th>
如果我在上述代码中的 columnName 旁边插入 {{ count }}(或代码中的任何有价值的地方),则会出现错误,提示未定义计数。
<th><button class="some-type" ng-click="count = count + 1" ng-init="count = 0"><b>columnName</b></button></th>
我像上面的代码一样在 ng-click 中删除了额外的函数调用,但即使是这个简单的代码也根本无法识别计数。
那么,在 ng-init 和 ng-click 中是否有特定的方法来声明变量?
为什么这段代码不能按原来的方式工作?
【问题讨论】:
-
@AnuragSrivastava,在您提供的链接中,他们使用了 ng-controller。所以,基本上,ng-click 和 ng-controller 是主要的“功能”,而 ng-init 是 html 中的变量设置器?
标签: javascript angularjs angular angularjs-ng-click angularjs-ng-init