【问题标题】:ng-repeat not refreshing in select optionsng-repeat 在选择选项中不刷新
【发布时间】:2018-04-29 16:36:36
【问题描述】:

目前正在使用 AngularJS,我遇到了“选择选项”的问题。

我正在执行 $http 请求以从 Cloud SQL 数据库中获取数据。

为此,我调用工厂中的一个函数并从我的数据库中返回数据。

Here is my JS.

如您所见,我首先使用包含 2 个值(1 和 2)的数组初始化我的“controller.connections”变量。

获取我的数据后(使用我的“f_getData”函数),我更改了该数组的值(我添加了 4 个值,并且我不使用获取的数据只是为了测试,但行为是相同的)。

Here is my HTML.

供您参考,我的 ng-app 位于“html”标签上,而 ng-controller 位于“body”标签上。 我将 ng-repeat 用于我的选项,因为我使用 ng-options 的行为相同。 在我的选择下方,我有一个 ng-repeat 与完全相同的条件进行测试。

Here is the behaviour.

如您所见,我在 ng-repeat for my select 中的变量似乎没有更新。 虽然,相同的变量会在“p”标签上的 ng-repeat 上更新。

所以我尝试了:

  1. $scope.$apply() 在回调 ('then') 中,但控制台说 $digest 正在完成。回调后我也试过了,它说 $apply() 正在完成,所以我尝试了 $timeout 2 秒,但没有做任何事情。
  2. $scope.connections 而不是 controller.connections,但我猜这会产生问题,因为 ng-repeat 创建了自己的范围。
  3. 在回调中为我的大数组使用一个临时变量,然后在回调中将我的“连接”变量的值更改为这个临时变量,最后调用 $scope.$apply()。我的选项上的 ng-repeat 没有更新,但我的 'p' 标签上的 ng-repeat 是。

所以基本上我的问题是:我不能使用 ng-repeat 或 ng-options 来创建动态选择输入。 有没有人有办法解决吗 ? 提前致谢

【问题讨论】:

  • 只是一个问题,为什么你的插值是用括号而不是花括号?
  • @Zooly,我们可以使用 interpolateprovider 来更改默认值,stephane,你能为此问题创建一个 [plunker] (plnkr.co/edit/?p=catalogue)
  • @SunilLama 哦,好吧,我不知道这一点,很有趣,谢谢!
  • @Stephare,您可以使用超时方法,用更少的时间重新绑定 ng-option 值。
  • 用你的文件制作 plunker,我保证我会解决你的问题。

标签: javascript angularjs select angularjs-ng-repeat


【解决方案1】:

感谢所有试图帮助我的人,非常感谢。 我解决了我的问题(稍作改动)。 我开始使用老式的糟糕方式通过在我的 JS 中创建选项元素来填充选项,同时我会找到解决方案。在寻找一种方法来重置我的选择值时,我发现了一个正在使用 ng-options 并且它正在工作的人的 plunker。因此,我获取了这个 plunker 的代码并将其粘贴到我的代码中。

它奏效了!

然后我尝试将它调整到我的代码中,它一直工作到一定程度。
那一点是我选择的div。我试图把它放在几个不同的地方(工作)直到它在开始时的 div (有点工作:有时当我刷新时,选项不会显示,然后再次刷新会解决问题)。
我仍在尝试找出问题所在。

感谢大家的帮助。
很抱歉给你我的代码截图,我不熟悉在这里发布问题,我是那种使用答案而不是找到答案的人......
但我向你保证,我会注意到你对我未来问题的所有批评。

再次感谢 !



P.S:请问我们如何关闭一个主题? ^^

【讨论】:

    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多