gpt4 book ai didi

javascript - IE,ng-repeat 用于选择剪切文本或显示 {{}}

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:28:04 25 4
gpt4 key购买 nike

基本问题

我有一个多选(列表)取决于我如何编写 html/angular 有一个错误。在第一种情况下,最后 3 个字符从渲染中被 chop 。在第二种情况下,在单击项目之前,名称不可见,而是 {{}} 占位符。

我只是想要一种方法,让我能够以正确的方式显示元素,而不会出现错误。

最后,如果在页面和选择呈现后将元素添加到 categories 数组,似乎会发生此行为。

使用 ng-bind

<select id="categories" name="categories" class="ep_field sumoSelect" multiple="multiple"
ng-model="selectedCategories"
ng-change="angularCategorySelectedGrants($event)"
<option ng-repeat="cat in categories" value="{{cat.id}}" ng-bind="cat.name"></option>
</select>

enter image description here

没有 ng-bind

<select id="categories" name="categories" class="ep_field sumoSelect" multiple="multiple"
ng-model="selectedCategories"
ng-change="angularCategorySelectedGrants($event)"
<option ng-repeat="cat in categories" value="{{cat.id}}">{{cat.name}}</option>
</select>

enter image description here

使用 ng-options

使用 ng-options 一切都会出现,但我无法真正点击元素来选择它们——它们被卡住了。

<select id="categories" name="categories" class="ep_field sumoSelect" multiple="multiple"
ng-model="selectedCategories"
ng-change="angularCategorySelectedGrants($event)"
ng-options="cat.name for cat in categories track by cat.id" >
</select>

由于没有人写答案,请将我自己的变通方法视为已接受的答案。

最佳答案

我自己的解决方法

问题似乎出在初始渲染发生后将项目添加到 categories 数组。我发现了两个解决方法:

  1. 只将所有元素添加到数组中一次而不再添加 OR
  2. 使用 ng-if 隐藏 dom select 元素 100 毫秒,然后使其再次可见。这会强制浏览器重新呈现元素并正确呈现它们。

在 HTML 中(包装选择):

<div ng-if="categories!=undefined && categoriesLoaded">
...Select code here...
</div>

在 Controller 中(Javascript):

$scope.categoriesLoaded = false;
//Trigger render
$timeout(function(){ $scope.categoriesLoaded = true;}, 0);

关于javascript - IE,ng-repeat 用于选择剪切文本或显示 {{}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38453662/

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