有人知道onsen的popover组件有什么用吗?
当我尝试访问定义的最近控制器的变量时,它不起作用。它始终从根范围加载变量。
似乎无法正确解析{{name}}或{{option}}:
<body ng-controller="AppController">
<ons-navigator var="navigator">
<ons-page ng-controller="PageController">
<ons-template id="popover.html">
<ons-popover cancelable direction="down">
<my-dialog>{{name}}!</my-dialog>
<ons-list>
<ons-list-item ng-repeat="option in options" modifier="tappable">
{{ option }}
</ons-list-item>
</ons-list>
</ons-popover>
</ons-template>
</ons-page>
</ons-navigator>
</body>
http://plnkr.co/edit/w2ZL3dkv62qSYrhhEj5C?p=preview
它不是加载PageController中定义的名称,而是加载AppController
中定义的名称答案 0 :(得分:0)
自动接听。
似乎createPopover只是扭曲了。无论是否有意,它总是会根据根范围解析变量。这不是很好
以下是createPopover方法的修复,因此您可以处理范围。否则,范围始终是rootScope
http://plnkr.co/edit/W4GgqLcJHlj724IB2KRG?p=preview
ons.createPopover = function(page, __scope) {
...
ons.compile(popover[0], __scope);
...
}
ons.compile = function(dom, __scope) {
var scope = __scope || angular.element(dom).scope();
我在createPopover中添加了__scope变量并进行了编译。我用控制器的范围创建了popover:
ons.createPopover('popover.html', $scope)
这种方式需要给定范围来解析变量。 angular.element(DOM).scope();总是被解析为root,因为popup元素被附加到createPopover函数的主体上。