使用Knockout时,防止Web Essentials JsHint“ko未定义”警告

时间:2014-01-17 16:36:47

标签: visual-studio-2013 jshint web-essentials

在使用捆绑和缩小的ASP.NET MVC 5项目中,我有一个Javascript视图模型,我填充在.cshtml文件中。视图模型通过ko引用了淘汰赛,效果很好。但是,来自Web Essentials的JsHint输出会针对'ko' is not defined的每个引用报告警告W117 ko

.js文件看起来像这样:

/* exported MyViewModel */
function MyViewModel(viewModel) {
    self.someValue = ko.observable(); // JsHint warning on this line.
    ...
}

.cshtml文件看起来像这样:

...
@section Scripts {
    <script>
        ko.applyBindings(new MyViewModel(ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)))));
    </script>
}

如何保持“未定义”警告的好处,但要避免这些错误警告?

2 个答案:

答案 0 :(得分:24)

  1. 从“Web Essentials”菜单中,选择“编辑全局jshint设置”
  2. 滚动到.jshintrc文件的底部并添加:

    "globals"       : { "ko": false}        // additional predefined global variables
    
  3. 这会阻止jshint抱怨ko,但仍然会警告你其他未定义的符号。

    请注意,您也可以在每个文件的基础上执行此操作,方法是将此评论放在javascript文件的顶部。

    /*global ko*/
    

答案 1 :(得分:4)

新的Web Essentials也可以从父目录中读取.jshintrc。

  1. 从Web Essentials菜单中选择Edit global JSHint settings(.jshintrc)。
  2. 将文件内容复制到解决方案文件夹中的“.jshintrc”文件中。
  3. 根据需要编辑文件(例如,将ko添加为全局变量)
  4. 这样可以将.jshintrc添加到版本控制中,以便与所有开发人员共享它,而无需编辑各个工作站上的全局JSHint设置。