【问题标题】:How to cause ng-show to activate after a promise resolves如何在承诺解决后激活 ng-show
【发布时间】:2015-12-30 19:43:02
【问题描述】:

我有一个 ng-repeat,里面有一个 ng-show。在我的控制器中的承诺解决之前,传递给 ng-show 的变量不会完全启动。

这导致 ng-show 总是最终读取“错误”对象,因为它在承诺完成从服务获得正确结果之前读取值。

有没有办法让 ng-show 等到我的对象完全初始化?

【问题讨论】:

  • 你能用一个具体的例子发布一些代码吗?
  • 从路由resolve到在控制器中定义变量再到使用$q.all(),可以通过多种方式实现这一点。需要显示更多上下文和代码

标签: angularjs angularjs-directive angularjs-ng-repeat ng-show


【解决方案1】:

您可以使用控制变量,例如$scope.loaded = false,并将您的承诺设置为true。然后你可以在ng-show 中使用这两个条件。

【讨论】:

    【解决方案2】:

    在页面加载时设置一个标志值。

    app.controller({.......
    $scope.flagPromiseWait = false;
    .........
    .........
    var onSuccess = function (result){
    .............
    ............
    $scope.flagPromiseWait = true;
    },
    var onError = function(err){
    ............
        }
    });
    

    在 HTML 上使用

    <div ng-show="$scope.flagPromiseWait">...........<div>
    

    【讨论】:

    • 这不应该是&lt;div ng-show="$scope.flagPromiseWait"&gt;,而是在 ng-show 属性中没有 $scope var 的情况。像这样:&lt;div ng-show="flagPromiseWait"&gt;
    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 2020-09-07
    • 2016-01-10
    • 2017-02-18
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多