gpt4 book ai didi

javascript - ng 重复和 "Controller as"

转载 作者:行者123 更新时间:2023-11-29 19:34:24 25 4
gpt4 key购买 nike

我被这个 fiddle 中的例子难住了.我在具有 ng-repeat 的元素上设置一个 Controller ,以便为每个项目创建一个新的 Controller 实例。由于 ng-repeat 为每个项目创建了一个新的范围, Controller 应该接管新创建的范围,这样对于 ng-repeat="item in items"item 变成$scope.item 在 Controller 上。如果我通过注入(inject) $scope 来使用常规 Controller 约定,那么它可以正常工作,如示例所示。但是,我认为 与“Controller as”类似的语法不起作用,例如如果我定义 ng-controller="FirstCtrl as first",那么对于 ng-repeat="item in items"item作为this.item可用。这是为什么?

最佳答案

您可以使用 ng-init 使范围项对 Controller 可用:

HTML:

<div ng-repeat="item in items"
ng-controller="ItemController as ctrl"
ng-init="ctrl.init( item )">
...
</div>

Controller :

.controller('ItemController,[
function(){
this.init = function(item){
this.item = item;
}
}
])

更新的 fiddle :

http://jsfiddle.net/xvdj07q9/3

关于javascript - ng 重复和 "Controller as",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25893711/

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