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

Edw*_*rey 7 jshint web-essentials visual-studio-2013

在使用捆绑和缩小的ASP.NET MVC 5项目中,我有一个Javascript视图模型,我填充在.cshtml文件中.视图模型引用了knockout via 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.
    ...
}
Run Code Online (Sandbox Code Playgroud)

每个.cshtml文件都是这样的:

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

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

Ric*_*cht 24

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

    "globals"       : { "ko": false}        // additional predefined global variables
    
    Run Code Online (Sandbox Code Playgroud)

这将阻止jshint抱怨ko,但仍会警告你其他未定义的符号.

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

/*global ko*/
Run Code Online (Sandbox Code Playgroud)