在ng-repeat中查找范围内的ng-click

时间:2017-10-01 13:54:13

标签: angularjs angularjs-scope angularjs-ng-repeat angularjs-ng-click

我有一个非常复杂的嵌套角度对象。 现在在对象结束时,ng-click没有用。

我读到了角度范围的工作原理,我得到了ng-click为循环中的每个项目创建一个子范围。 我没有得到的是如果ng-click无法找到我尝试在作用域中调用的函数,它如何找到返回作用域的函数。

这就是我的意思:

mainApp.controller('fileController', function ($scope) {

    $scope.function_ngclick_cant_get = function (){
    // stuff here
    };

    $scope.getMyCtrlScope = function() {
        return $scope;   
   }
}

这是btn

<button class="btn btn-default" type="submit" value="Submit" ng-click="getMyCtrlScope().function_ngclick_cant_get();">call function</button>

如果我打电话给&#39; function_ngclick_cant_get&#39;直接它不起作用。 如果我在示例中调用它就可以了。

但为什么会这样呢?它们属于同一范围。

1 个答案:

答案 0 :(得分:0)

好的我可能错了,因为我不确定你要做什么,但为什么要设置返回$ scope的函数?你可以简单地做任何回报或范围。

向控制器中的$ scope对象添加属性时,视图(HTML)可以访问这些属性。 所以你的代码应该是这样的:

<button class="btn btn-default" type="submit" value="Submit" ng-click="function_ngclick_cant_get();">call function</button>

您可以查看w3schools关于范围:https://www.w3schools.com/angular/angular_scopes.asp

<强>更新

我准备了一些虚拟代码,表明你可以使用ng-click进行多次ng重复:

https://jsfiddle.net/pegla/2e4w3yuo/10/

所以不需要返回$ scope的函数,看起来你的代码中有问题,发布更多的代码放在小提琴或某个地方,我们可以提供帮助。