javascript - 使用 Angularjs 的动态网格

标签 javascript angularjs gridview angularjs-directive angularjs-scope

我的代码位于不同的层中: 1. 一个工厂,包含我所有的 $http 请求,并返回 promise 。 2. 一个 Controller ,使用 then 处理该 Promise,将其分配给 $scope 变量,然后将其显示在 gridview 上。

现在我正在尝试创建一个指令来处理 Gridview,并将数据作为要在链接函数中处理的 attr 传递并显示它。通过这个,我试图实现代码的可重用性。问题是,由于异步调用,作用域上的数据变量当然变空了,对此有什么更好的方法呢?

angular.module('parametrosModule').factory('apiMethods', ['$http', 'apiUrl', function ($http, apiUrl) {

return {
    getBleh: function () {
               return $http.get(apiUrl.urlBase + '/getBleh');
       },

       }

    }])
 .controller('transactionController', ['apiMethods', function (apiMethods) {

  var vm = this;

  function getData() {
           apiMethods.getBleh()
              .then(function (response) {
                 vm.data = response.data;
              });
        };
}])
.directive('dynamicGrid', [function () {
    return {
        restrict: 'E',
        templateUrl: 'app/directives/dynamicGrid.html',
        scope: {
            data: '=',
            headers: '='
        },
        link: function (scope, elem, attrs) {
            var vm = this;

            vm.values = scope.data;

            vm.headers = scope.headers;

        }
    }
}]);

这是我格式化后的代码,问题是由于 api 调用迟到,数据属性变为空。整个想法是创建一些在从应用程序中的任何人接收到 x 数据后自行构建的东西。谢谢!!

最佳答案

您不需要为此使用链接函数here是一个工作示例。您只需告诉模型要绑定(bind)到什么,即可将模型实际绑定(bind)到指令的 $scope:

scope: {
  data: '=data',
  headers: '='
}

关于javascript - 使用 Angularjs 的动态网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903905/

相关文章:

javascript - Angular Bootstrap 模式导致 strict-di 错误,不知道为什么

c# - 属性描述符如何使用同一代码行获取两个控件的值?

javascript - 函数内设置的间隔必须返回解析消息或拒绝

javascript - 无法在 JavaScript (AngularJS) 中对多个字段上的对象进行排序

javascript - AngularJS 忽略 HTTP header 中的 Set-Cookie

c# - 在datagridview Cell中动态插入数据

android - 自定义布局作为 GridView 的项目

javascript - ES2017 规范中的 "An object is a member of Object"

javascript - 一个简单的 JavaScript 函数由于奇怪的错误而拒绝工作

angularjs - 如何将背景图像添加到 ionic 侧面菜单