gpt4 book ai didi

javascript - Angular ng-click

转载 作者:行者123 更新时间:2023-11-28 15:18:40 25 4
gpt4 key购买 nike

学习 AngularJS。尝试更改教程中的示例。需要 ng-init 值等于从脚本函数传输的值。怎样才能做到呢?代码如下:

<html>
<body>
<h2>AngularJS Sample Application</h2>
<div ng-app="mainApp" ng-controller="clickController">
<p>Total click: {{ click.clickCounter() }}</p>
<button ng-click="count = count+1"
ng-init="count=click.clickCounter()">Click Me!</button>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
</script>
</body>

<script>
var mainApp = angular.module("mainApp", []);

mainApp.controller('clickController', function($scope) {
$scope.click = {
count: 15,
clickCounter: function() {
var foo;
foo = $scope.click;
return foo.count;
}
};
});
</script>
</html>

问题在于将 click.clickCounter() 的值传输到 ng-click。

最佳答案

您的问题是您正在范围的根上创建一个新的 count 变量。

如果 $scope.click.count 则可用,但 ng-initng-click 正在创建和更新 $scope.count.

这解决了问题

<button ng-click = "click.count = click.count+1" ng-init="click.count=click.clickCounter()">Click Me!</button>

编辑:如果您在应用程序中添加 {{count}} ,您将看到它正在创建的范围变量。 Angular 的双刃剑之一是,如果您在 View 中定义了作用域中不存在的变量,Angular 将为您创建并将它们添加到作用域中。

编辑2:您的ng-init已过时。由于您已经创建了 $scope.click 对象的 count 属性,因此它已经初始化并具有值。

另请参阅 fiddle : http://jsfiddle.net/yjwskkat/

关于javascript - Angular ng-click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32480917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com