gpt4 book ai didi

angularjs - ng-repeat 中 ng-click 调用的赋值表达式的行为

转载 作者:行者123 更新时间:2023-12-03 08:09:59 24 4
gpt4 key购买 nike

我正在尝试使用 ng-click 更新我的模型附于 <p> .

我对 ng-repeat 之外的赋值表达式没有问题, 或调用 ng-repeat 中的作用域方法.但是,如果我在 ng-repeat 中使用分配,它似乎被忽略了。我在 Firefox 控制台中没有看到任何消息报告,但没有尝试设置断点以查看事件是否被触发。

<!DOCTYPE html>
<html>
<head>
<title>Test of ng-click</title>
<script type='text/javascript' src='http://code.angularjs.org/1.1.1/angular.js'></script>
<script type='text/javascript'>//<![CDATA[

function MyCtrl($scope) {
$scope.selected = "";
$scope.defaultValue = "test";
$scope.values = ["foo", "bar", "baz"];

$scope.doSelect = function(val) {
$scope.selected = val;
}
}
//]]>

</script>
</head>

<body ng-app>
<div ng-controller='MyCtrl'>
<p>Selected = {{selected}}</p>
<hr/>
<p ng-click='selected = defaultValue'>Click me</p>
<hr/>
<p ng-repeat='value in values' ng-click='selected = value'>{{value}}</p>
<hr/>
<p ng-repeat='value in values' ng-click='doSelect(value)'>{{value}}</p>
</div>
</body>
</html>

fiddle 是 here ,如果您愿意(以及一些较早的变体)。

最佳答案

指令 ngRepeat 为每次迭代创建一个新范围,因此您需要在父范围中引用您的变量。

使用$parent.selected = value ,如:

<p ng-repeat='value in values' ng-click='$parent.selected = value'>{{value}}</p>

注意:函数调用由于原型(prototype)继承而传播。

如果您想了解更多: The Nuances of Scope Prototypal Inheritance .

关于angularjs - ng-repeat 中 ng-click 调用的赋值表达式的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388344/

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