Angularjs 在onsen用户界面中隐藏popover

Angularjs 在onsen用户界面中隐藏popover,angularjs,popover,onsen-ui,Angularjs,Popover,Onsen Ui,所以,在有人跳到我身上大喊已经有了解决办法之前,我很抱歉,这对我不起作用。 我看了一眼,尝试了下面问题中提出的两种选择,但都没有成功。 我真的不明白为什么,因为我的代码与示例几乎相同。我在页面上使用滑动菜单,但基本上就是这样 这是我的index.html <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-

所以,在有人跳到我身上大喊已经有了解决办法之前,我很抱歉,这对我不起作用。 我看了一眼,尝试了下面问题中提出的两种选择,但都没有成功。

我真的不明白为什么,因为我的代码与示例几乎相同。我在页面上使用滑动菜单,但基本上就是这样

这是我的index.html

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<script src="components/loader.js"></script>

<link rel="stylesheet" href="components/loader.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/sliding_menu.css">
<script>

    var app = ons.bootstrap('propertyDeal', ['onsen']);
    app.controller('AppController', function($scope, myService) {
        ons.createPopover('popover.html',{parentScope: $scope}).then(function(popover) {
            $scope.popover = popover;
            myService.setPopover($scope.popover);
        });
    })
    app.controller('HydePController', function($scope, myService) {
        $scope.destroyPopover = function() {
            $scope.popover = myService.getPopover();    
            $scope.popover.hide();
        }
    });

    app.service("myService", function(){
        var sharedPopover

        var setPopover = function(pop){
            sharedPopover = pop;
        };

        var getPopover = function(){
            return sharedPopover;
        };

        return {
            setPopover: setPopover,
            getPopover: getPopover,
        };
    });
</script>
</head>
<body>
<ons-sliding-menu main-page="initial.html" menu-page="menu.html" max-slide-distance="260px" type="overlay" var="menu" side="left" close-on-tap>
</ons-sliding-menu>
<ons-template id="popover.html">
    <ons-popover direction="down" cancelable>
            <ons-list ng-controller="HydePController">
                <ons-list-item modifier="tappable" ng-click="menu.setMainPage('save.html', {closeMenu: true}); popover.hide()">
                    <ons-icon icon="fa-cloud"></ons-icon>
                    Save property
                </ons-list-item>
                <ons-list-item modifier="tappable" ng-click="hydepopover()">
                    <ons-icon icon="fa-home"></ons-icon>
                    View portfolio
                </ons-list-item>
            </ons-list>
    </ons-popover>

</ons-template>

</body>

var app=ons.bootstrap('propertyDeal',['onsen']);
app.controller('AppController',函数($scope,myService){
ons.createPopover('popover.html',{parentScope:$scope}){
$scope.popover=popover;
setPopover($scope.popover);
});
})
应用程序控制器('HydePController',函数($scope,myService){
$scope.destroyPopover=函数(){
$scope.popover=myService.getPopover();
$scope.popover.hide();
}
});
app.service(“myService”,function()){
var共享端口
var setPopover=函数(pop){
sharedpover=pop;
};
var getPopover=function(){
返回共享端口;
};
返回{
setPopover:setPopover,
getPopover:getPopover,
};
});
保存属性
查看投资组合
和initial.html

<ons-navigator>
<ons-page>
    <ons-toolbar>
      <div class="left">
        <ons-toolbar-button ng-click="menu.toggleMenu()">
          <ons-icon icon="ion-navicon" size="28px" fixed-width="false"></ons-icon>
        </ons-toolbar-button>
        <ons-icon class="icon" icon="ion-social-usd"></ons-icon>&nbsp;Initial investment
      </div>
      <div class="right">
        <ons-toolbar-button ng-click="menu.toggleMenu()">
          <ons-icon icon="ion-android-share" fixed-width="false"></ons-icon>
        </ons-toolbar-button>
            <ons-toolbar-button ng-controller="AppController" id="android-more" ng-click="popover.show($event);">
              <ons-icon icon="ion-android-more" fixed-width="false"></ons-icon>
            </ons-toolbar-button>
      </div>
    </ons-toolbar>

    <div style="text-align: center">
        <h2>Initial investment</h2>

        <ul class="list">
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Purchase price">
            </li>
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Market value">
            </li>
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Stamp duty">
            </li>
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Sourcing fee">
            </li>
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Legal fee">
            </li>
            <li class="list__item">
                <input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="Other">
            </li>
        </ul>
    </div>

        </ul>
    </div>

</ons-page>
</ons-navigator>

初始投资
初始投资
如上所述,我尝试了两种解决方案,但都没有成功。我不明白为什么。我还有一个滑动菜单,在菜单外单击时不会关闭。这有关系吗

谢谢你的帮助!
Arnaud

除了一个小错误,您提供的代码很好。您不应该在工具栏按钮上添加控制器,因为它会破坏按钮

只需在父元素(在
initial.html
中)上添加控制器,如下所示:



谢谢Andi,但它仍然没有关闭。即使在你的代码笔例子中,如果我点击菜单中的两个按钮之一,它仍然不会关闭弹出框。我在安卓系统和一台装有firefox和chrome的pc上进行了尝试。现在这个问题已经解决了。我实际上在想为什么这不起作用,为什么滑动菜单有类似的问题。原来我使用的是onsenui 1.2.2,现在更新到了1.3.4,一切正常。无论如何,谢谢你的帮助。@nocrack不客气!请考虑更新到1.3.11,因为它修复了许多bug,如果你认为它有帮助的话,我的答案是: