我有以下angular-List(减少内容以使其更易读):
<div ng-repeat="element in bigBlock.Elements track by $index"
class="singleBlockElement"
ng-drop="dragSource=='Block'"
ng-drop-success="To($index, $data, bigBlock)">
<div class="bbRange"> </div>
<i class="fa {{GetImage(element)}}" />
<div ng-drag="element.ElementType!=='placeholder'"
ng-drag-data="element"
ng-drag-start="Start()"
ng-drag-success="From(element,bigBlock, $index, bigBlock.$index)"
ng-drag-stop="Stop(element, bigBlock, $index, bigBlock.$index)"
class="cutOff">
{{element.Title}}
</div>
<div class="edit ng-show="GetLinkText(element, true)">
<span class="isvisible">
<i title="{{element.Present?'Präsentieren':'Nicht präsentieren'}}" class="fa fa-{{element.Present?'eye':'eye-slash'}}"></i>
</span>
<a href="#" ng-click="Edits.Element(element, true)">{{GetLinkText(element,true)}}</a>
</div>
</div>
这是它的样子: 这是拖延: 这就是我只是不像下面描述的那样掉落的样子:
我现在可以(成功地)拖拽删除该块中的两个元素(“欢迎”和“走开”),改变这两个元素的顺序。
但如果我中止了拖放。例如拖动“欢迎”而不是向下移动它或将其移动到我无法放下的区域(块外)文本“欢迎”消失。
没有错误。下降只是没有(正如预期的那样),但Angular似乎无法重新显示该元素的文本。 ({{element.Title}})
我尝试使用$ apply()强制刷新,但这并没有改变一件事(也没有创建错误)。
但是,如果我在页面上执行任何操作,例如单击编辑按钮或导致事件的任何其他内容,则会再次正确显示日期。
所以对我来说这看起来像是一个刷新问题。
我正在使用ngDraggable(https://github.com/fatlinesofcode/ngDraggable)
(更新:分析Chrome浏览器控制台中的页面来源文本似乎仍然存在,甚至“应该”可见(显示:阻止),因此这可能更像是一个浏览器问题(chrome)而不是角问题)
答案 0 :(得分:0)
这似乎是纯粹的Browser / CSS-Issue而不是Angular-Issue。我通过强制浏览器刷新父容器来解决这个问题:
$('.mm-Right')[0].style.display = 'none';
$('.mm-Right')[0].offsetHeight;
$('.mm-Right')[0].style.display = 'block';
我的结构是
<div class='mm-Right'>
<div class='singleBlockElement>[..]</div>
<div class='singleBlockElement>[..]</div>
<div class='singleBlockElement>[..]</div>
</div>
确实解决了这个问题,但看起来像是在欺骗我。我宁愿不出现这个错误,而不是隐藏症状。所以我很高兴接受任何更好的答案来解决这个问题。