gpt4 book ai didi

AngularJS - 从自定义指令将参数从 ng-repeat 传递到 Controller

转载 作者:行者123 更新时间:2023-12-02 23:54:50 25 4
gpt4 key购买 nike

我有一个自定义 AngularJS 指令,它正在渲染 ng-repeat。在此 ng-repeat 中,我想将一个元素传递给函数。函数被调用,但 item 未定义。

重要提示:我让我的人员进行休息通话。

//Inside the template
<ul class="list-group" data-ng-repeat="person in persons track by $index">
<li>
... ng-click=fn(person) ...
</li>
</ul>

这是我喜欢传人的功能。

//in outside controller    
$scope.showPerson = function (item) {
console.log(item) // this is undefined
}

我的指令如下所示:

directive('custom', function () {
return {
restrict: 'E',
scope: {
persons: "=persons",
fn: "&"
},
templateUrl: "/views/templates/persons.html"
};
});

我这样称呼我的指令:

<custom persons="persons" fn="showPerson()"></custom>

有什么想法为什么 item 未定义吗?我唯一能想象到的是时间问题,因为该指令在人员数组被填满之前触发(来自其余调用)。

最佳答案

传递到隔离作用域的函数在接受参数时有一个特殊性。对于初学者,请在 HTML 中定义参数:

<custom persons="persons" fn="showPerson(x)"></custom>

注意参数名称:x。现在从指令的模板中(这是其特点):

<button ng-click="fn({x: person})" ...>

其中x是上面定义的参数的名称。

关于AngularJS - 从自定义指令将参数从 ng-repeat 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055055/

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