gpt4 book ai didi

angularjs - 每次它使用的数据发生变化时,如何让 AngularJS 重新运行一个函数?

转载 作者:行者123 更新时间:2023-12-04 14:47:55 24 4
gpt4 key购买 nike

有了淘汰赛,我可以说

<html>
<head>
<script type="text/javascript" src="knockout-2.1.0.js"></script>
</head>
<body>
<input type="text" data-bind="value: a"></input> +
<input type="text" data-bind="value: b"></input> =
<span data-bind="text: result"></span>
<script type="text/javascript">
function ExampleViewModel() {
this.a = ko.observable(5);
this.b = ko.observable(6);
this.result = ko.computed(function() {
return parseInt(this.a()) + parseInt(this.b());
}, this);
}

ko.applyBindings(new ExampleViewModel());
</script>
</body>
</html>

result每次 a 和 b 变化时都会重新计算。我怎样才能让 AngularJS 为我做这件事?我试过了
<html ng-app>
<head>
<script type="text/javascript" src="angular-1.0.1.min.js"></script>
<script type="text/javascript">
function ExampleCtrl($scope) {
$scope.a = 5;
$scope.b = 6;
$scope.result = function() {
return this.a + this.b
};
}

</script>
</head>
<body ng-controller="ExampleCtrl">
<input type="text" value="{{ a }}"></input> +
<input type="text" value="{{ b }}"></input> =
{{ result() }}
</body>
</html>

又看了一会儿,发现 ng-change :
<html ng-app>
<head>
<script type="text/javascript" src="angular-1.0.1.min.js"></script>
<script type="text/javascript">
function ExampleCtrl($scope) {
$scope.a = 5;
$scope.b = 6;
$scope.result = function() {
return parseInt($scope.a) + parseInt($scope.b)
};
}

</script>
</head>
<body ng-controller="ExampleCtrl">
<input type="text" ng-model="a" ng-change="result()"></input> +
<input type="text" ng-model="b" ng-change="result()"></input> =
{{ result() }}
</body>
</html>

但这需要我跟踪更改 a 的事实。或 b变化 result() ,是否有任何自动检测方法?

最佳答案

您的 result()通过 ng-model 绑定(bind)时,只要模型发生变化,就会重新评估函数。在你的输入中是这样的:

<input type="text" ng-model="a"></input>

代替:
<input type="text" value="{{ a }}"></input>

关于angularjs - 每次它使用的数据发生变化时,如何让 AngularJS 重新运行一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870771/

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