javascript - 数据加载后动态生成 HTML

标签 javascript html asp.net angularjs

我想根据数据驱动值在我的网页上动态生成 HTML 数据。即我想加载一个环境列表、一个模型列表,然后对于每个模型/环境组合,基于此输出一行 HTML。

我过去曾使用 ng-repeat 在我的 Controller 中使用 JS 集合来生成结果,即对于集合中的每个项目,输出此 HTML block ,这实际上是我想要在这里做的事情,尽管有两个嵌套的 ng-repeats。例如

<tr ng-repeat="model in models">
    <td>
       <div ng-repeat="env in environments">
         {{model.name}} {{env.name}}
       </div>
    </td>
</tr>

但我的问题是,我必须异步调用 REST api 才能获取此数据,因此当返回时,它会进入 Promise block 来处理结果。

例如

appService.init = function() 
{
    ComputeModelService.getModels()
                .then(function (response, status, headers, config) {
          $scope.models = response.data;
    }

    ComputeModelService.getEnvironments()
                .then(function (response, status, headers, config) {
          $scope.environments = response.data;
    }
}

init()

如何让 Controller 在后台从 REST API 加载数据,让 UI 在加载时显示“正在加载”光标,然后在两组数据返回时呈现动态 HTML?

最佳答案

只需像平常一样进行其余调用,并将要存储数据的结构绑定(bind)到 ng-repeat 即可。完成后,将其分配给您的范围(如果分配发生在 Angular 上下文之外,您可能需要执行 $apply)。

对于加载,您可以将一个标志设置为 true,然后在所有数据加载后将其设置为 false( promise 全部或其他)。使用 ng-show 将您的加载图标绑定(bind)到此。

关于javascript - 数据加载后动态生成 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681280/

相关文章:

c# - 使用 .MapOwinRoute() 而不是 OwinStartup/Configuration 类 - 协商返回 404

c# - 如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite 数据库文件?

javascript - 获取xpath中的具体数据

javascript - dc.js/crossfilter 性能问题 12,000 多行 CSV 数据

javascript - 在更改该页面上的类时定向到另一个页面

php - 无法通过 getElementById 操作 AJAX 下拉列表

asp.net - 如何获取文件的输入类型以在 ASP.NET 中选择时自动回发

javascript - 使用 ng-map/angularjs-google-maps 在 javascript 中检索当前位置

javascript - 确定在 html5 canvas javascript 中点击了屏幕上的哪个对象?

html - 博客上带有变量的元关键字