加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 具有外部数据和TypeScript的Ng网格:编译错误

发布时间:2020-12-16 07:24:38 所属栏目:asp.Net 来源:网络整理
导读:更新#1:在我评论的修复之后,现在我的应用程序启动但网格不会呈现,除了它的边界框和过滤器按钮和弹出窗口.然而,我从控制台得到没有错误,并且只要我可以通过调试器到达,我可以看到从服务器获得的数据是正常的.如果我使用Batarang,我可以看到与我的模型相对应
更新#1:在我评论的修复之后,现在我的应用程序启动但网格不会呈现,除了它的边界框和过滤器按钮和弹出窗口.然而,我从控制台得到没有错误,并且只要我可以通过调试器到达,我可以看到从服务器获得的数据是正常的.如果我使用Batarang,我可以看到与我的模型相对应的范围,正确填充项目.我相应地更新了可下载的repro解决方案.谁能解释为什么ng-grid不在这里更新?

我开始使用ng-grid和TypeScript,一旦我的测试应用程序启动,我就会发现问题.请参阅本文的底部,以获取完整测试解决方案的链接.当然,即使在这几个文件中我也犯了很多错误,但我想先从一开始就学到更多东西并逐步学习.

MVC应用程序有两个客户端应用程序:

> app.js为默认视图(Home / Index).这里没有打字稿,整个代码在这个单独的文件中是自包含的.该代码源自ng-grid文档中的分页示例,并尽可能保持最简单.
> MyApp.js用于另一个视图中的更逼真的样本(Home / Model).此示例使用服务,模型和控制器,其JS代码是从TypeScript编译的.为了简单起见,我只是将这些组件存储在Scripts / App下,存储在控制器,模型和服务的文件夹中,每个文件只包含一个类或接口.生成的JS文件手动包含在视图中.

app.js有效,但它有过滤问题.我在这里发布了这些:
Server-side filtering with ng-grid: binding issue?

MyApp.js有ng-grid的启动问题.应用程序启动后,网格绑定中会抛出一个TypeError:

TypeError: Cannot set property 'gridDim' of undefined
    at ngGridDirectives.directive.ngGridDirective.compile.pre (http://localhost:55203/Scripts/ng-grid-2.0.7.js:2708:37)
    at nodeLinkFn (http://localhost:55203/Scripts/angular.js:4392:13)
    at compositeLinkFn (http://localhost:55203/Scripts/angular.js:4015:15)
    at nodeLinkFn (http://localhost:55203/Scripts/angular.js:4400:24)
    at compositeLinkFn (http://localhost:55203/Scripts/angular.js:4015:15)
    at publicLinkFn (http://localhost:55203/Scripts/angular.js:3920:30)
    at resumeBootstrapInternal (http://localhost:55203/Scripts/angular.js:983:27)
    at Object.$get.Scope.$eval (http://localhost:55203/Scripts/angular.js:8057:28)
    at Object.$get.Scope.$apply (http://localhost:55203/Scripts/angular.js:8137:23)
    at resumeBootstrapInternal (http://localhost:55203/Scripts/angular.js:981:15) <div ng-grid="gridOptions" style="height: 400px" class="ng-scope"> angular.js:5754

我通过谷歌搜索找到的唯一类似问题是https://github.com/angular-ui/ng-grid/issues/60,但它似乎与我的情况无关,因为网格选项设置太晚了.

服务器端只有一个API RESTful控制器返回服务器分页,排序和筛选的项目.

你可以在这里找到完整的repro解决方案(只需保存,解压缩和打开;所有依赖项都来自NuGet);有关更多信息,请参阅readme.txt文件:

http://sdrv.ms/167gv0F

只需启动应用程序并单击右上角的MODEL即可运行引发错误的TypeScript应用程序.整个应用程序由1个控制器,1个服务和1个模型组成.

对于像我这样的初学者来说,拥有像这样的简单工作示例会很不错.有人可以帮忙吗?

解决方法

此错误表示尚未在Angular尝试解析ng-grid =“yourArray”时定义gridOptions,其中yourArray是提供给gridOptions的相同数组.重构以前工作的ng-grid后我遇到了同样的问题.

因此,必须在应用了ng-grid =“yourArray”属性的元素之前定义gridOptions(而不是在该元素自己的控制器中).

我通过在某个外部元素中定义gridOptions来解决这个问题(例如,在全局/应用范围内).

附:也许有更好的方法,但这对我有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读