在ng-repeat中调用父范围中定义的函数

时间:2018-02-19 21:03:12

标签: html angularjs

原始问题:(请跳至编辑)

我正在尝试制作我可以点击的图书。

<div ng-app="myApp" ng-controller="myAppCrtl"> 
    <ul ng-repeat="x in browseBooks">
        <div id="{{x.bookId}}">
            <li>        
            <a href="" ng-click=logout()><img style="max-width:100px;" ng-src="{{x.img}}"></a>
                <p>{{x.name}}</p>
                <p>{{x.price}}</p>
                <br>
            </li>   
        </div>
    </ul>
</div>

根据提供的解决方案here无法正常工作,并且有关angularjs网站的链接已损坏。

我知道函数logout工作正常,就像正在执行的按钮一样。 <a>标签的问题我无法使图像触发所需的功能。

修改

我理解我的问题是什么,ng-repeat为循环中的每个项创建子范围。因此,尝试访问父作用域中定义的logout()方法不起作用。 ?

有什么想法吗?即使用"logout()"替换$parent.logout()也不起作用......

EDIT2

它正在运作,但是所有更改都是内部范围的本地...

2 个答案:

答案 0 :(得分:0)

您需要logout()附近的引号

然后您可以根据需要使用javascript:void(0)并且#不适合您

<a href="javascript:void(0)" ng-click="logout()"><img style="max-width:100px;" ng-src="{{x.img}}"></a>

答案 1 :(得分:0)

你试过了吗?

   <li ng-click="logout()">        
    <a href="#"><img style="max-width:100px;" ng-src="{{x.img}}"></a>
        <p>{{x.name}}</p>
        <p>{{x.price}}</p>
        <br>
    </li>