gpt4 book ai didi

javascript - AngularJS - ng-click 和 ng-show

转载 作者:行者123 更新时间:2023-11-30 10:35:19 24 4
gpt4 key购买 nike

我有一张 map ,上面有一些标记。单击时,每个标记都会打开一个 overlay-div。

 <div class="map" ng-init="loadall()">
<a ng-click="details.show=!details.show" href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.coordleft}}px;top:{{marker.coordtop}}px" ng-repeat="marker in dealer"></a>
</div>

它正在打开这个 div:

<div ng-show="details.show">      
<div ng-view></div>
</div>

问题:
如果 div 已经打开(details.show == true),我的客户注意到,如果您保持打开状态并单击 map 上的其他标记,div 会再次关闭。

我想达到的目标:
如果 div 已经打开,只需将新内容加载到 ng-view 中,而无需关闭并重新打开 div。

这可能吗?

编辑:

我的路线:

app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/dealer/:id', {templateUrl: 'files/tpl/dealer-details.html?20', controller: 'DealerDetailsCtrl', activetab: 'details'}).
when('/dealermessage/:id', {templateUrl: 'files/tpl/dealer-message.html?124', controller: 'DealerMessageCtrl', activetab: 'message'}).
when('/dealersendmessage/:id', {templateUrl: 'files/tpl/dealer-details.html?8', controller: 'DealerDetailsCtrl', activetab: 'details'}).
otherwise({redirectTo: '/dealer'});
}]);

如果单击了标记,则会加载第一个路由和 Controller 。这有帮助吗?

编辑 2:
“标记/div 切换现在可以使用,但我现在有一个打开的叠加层的奇怪行为。

示例:
当我打开“标记 1”时,div 可以正常打开。当“标记 1”的 div 打开时,我可以单击“标记 2”,然后 div 刷新为“标记 2”的内容。但是当我现在点击“标记 1”时,div 突然关闭。
我怎样才能阻止它?

最佳答案

仍然不太了解,但是您只保留一个模型来切换多个标记。因此,如果您单击一个标记打开,另一个标记将关闭它,因为您没有保持标记的状态。你可能需要这样的东西:

<div ng-repeat="marker in dealer">
<a ng-click="details.show=toggle(marker)" href="#/dealer/{{marker.id}}"
class="marker" style="left:{{marker.coordleft}}px;top:{{marker.coordtop}}px"></a>
</div>

在您的 Controller 中定义toggle 函数:

$scope.toggle = function(marker) {
marker.show = !marker.show;

return marker.show;
};

关于javascript - AngularJS - ng-click 和 ng-show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com