ng-单击ons-list-item内的span不起作用

时间:2016-02-26 07:52:38

标签: angularjs onsen-ui

我有一个带有列表项的ons-list和一个图标,当有人点击列表项时它应该转到屏幕A,当我点击图标时,它应该转到屏幕B,但问题是ng当我们点击图标时,点击冲突,技术上列表项也被点击。请参阅下面的代码。

<div ng-controller="getUserContacts">
<ons-list-header>Select Contact</ons-list-header>
<ons-list style="margin: -1px 0">   
    <div ng-show="loading" class="loading"><img src="img/loading.gif" height="50px" width="50px"></div>
    <ons-list-item modifier="" class="list-item" ng-repeat="x in contacts track by $index" style="margin-left: 10px;" ng-click="setcontact(x); page.pushPage('sendmoney2.html', {animation: 'slide'});">                    
        <ons-row>                           
            <ons-col width="52px" style="padding: 10px 0 0 0;">
                <img src="img/red.png" height="42px" width="42px"/>
            </ons-col>
            <ons-col>
                <header>
                    <span class="item-title">{{x.name}}</span>
                    <span class="list-item-note-sendmoney1"  ng-click="page.pushPage('editContact.html', {animation: 'slide'});"><ons-icon icon="ion-ios-information-outline" size="28px"></ons-icon></span>
                </header>
                <p class="swipe-item-desc">{{x.phone}}</p>
            </ons-col>                              
        </ons-row>                      
    </ons-list-item>
</ons-list>
</div>

感谢。

1 个答案:

答案 0 :(得分:4)

停止事件传播,你应该没问题。将 $ event.stopPropagation()添加到您的第二次ng-click中,如下所示:

ng-click="page.pushPage('editContact.html', {animation: 'slide'});$event.stopPropagation()"

Here对事件冒泡和捕获背后的魔法进行了更深入的解释。