- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码在下面,有人可以进入 jslint 并粘贴我的代码并告诉我为什么会出现错误并修复。例如,它说“describe”在定义之前使用,但在 angularjs 网站的页面中,它们没有显示任何定义。另一个错误是“意外字符''”。第 2 行第 42 行字符。由于没有缺少空格,因此也为 false。
describe('forgotPasswordCtrl', function () {
beforeEach(module('forgotPasswordApp'));
var $controller;
var returnMsg = 'Forgot password response message';
beforeEach(inject(function(_$controller_){
$controller = _$controller_;
}));
describe('$scope.finish', function(){
it('returns a -forgot password response- message', function(){
var $scope = {};
var controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.finish();
expect($scope.globalError).toEqual(returnMsg);
});
});
describe('$scope.cancel', function(){
it('assigns a url depending on a customer match happens', function(){
var $scope = {};
var controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.cancel();
expect(window.location.assign).toEqual("/web/tfgm_customer");
});
});
最佳答案
哇。好的,所以您并不总是能够正确地对库进行 lint 检测。如果这段代码应该在上下文中工作,那么就会发生很多意大利面条。
这是我对你所提供的内容的最佳猜测。让我知道我做错了什么。
注意:您需要在文件顶部添加一些 /*jslint ... */
指令。
sloppy:true
:允许您省略“use strict”white:true
:允许不加区别的空格nomen:true
:允许在变量名称的开头和结尾使用下划线 (_
)。browser:true
:此处允许使用窗口
。另请注意 /*global ... */
指令,您可以在其中放置所有这些函数,由于某些奇怪的原因,这些函数并不位于命名空间中。
我们开始:
/*jslint sloppy:true, white:true, nomen:true, browser:true */
/*global describe, module, beforeEach, inject, it, expect */
// You have some bad scoping below. I *think* you expect
// $controller, controller, & returnMsg to exist in full
// script scope.
var returnMsg, $controller = null, controller = null;
describe('forgotPasswordCtrl', function () {
beforeEach(module('forgotPasswordApp'));
returnMsg = 'Forgot password response message';
beforeEach(inject(function(_$controller_){
// You're never doing anything with this.
// JSLint wants to know why not.
$controller = _$controller_;
}));
});
describe('$scope.finish', function(){
it('returns a -forgot password response- message', function(){
var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.finish();
expect($scope.globalError).toEqual(returnMsg);
});
});
describe('$scope.cancel', function(){
it('assigns a url depending on a customer match happens', function(){
var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });
$scope.cancel();
expect(window.location.assign).toEqual("/web/tfgm_customer");
});
});
$controller.usedSomehow(); // to make JSLint happy. Please use.
controller.usedSomehowAsWell(); // to make JSLint happy. Please use.
老实说,这里发生了很多奇怪的事情,我不知道该怎么办。我认为您需要向我们更好地描述您认为自己正在做的事情(这显然是(?)单元测试的东西),但是诸如此类的东西......
var $scope = {};
controller = $controller('forgotPasswordCtrl', { $scope: $scope });
没有多大意义。 $scope 是一个对象,您传递给一个属性,在传递给 $controller 的匿名对象中也称为 $scope?为什么?为什么不...
controller = $controller('forgotPasswordCtrl', { $scope: {} });
...?我的猜测是,你在不同的地方发生了很多事情 scopes在真正开始对代码进行 linting 之前,您需要确定此代码的周围。
也就是说,它可以按原样工作吗?
<小时/>评论后编辑:
如果你得到这样的东西......
Unexpected character '(space)'.
beforeEach(module('forgotPasswordApp'));
...那是因为 JSLint 指令中没有 white:true
。检查JSLint instructions page有关所有这些选项的更多信息,其中关于 white
的说明如下:
true
if strict whitespace rules should be ignored.
您看到的错误有点误导。如果行尾有任何尾随空格,则可能会引发该错误。
关于javascript 未验证,jslint 显示不正确的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174698/
我有以下功能。其作用是过滤子域中允许的字符。在 JSLint 中我收到以下错误。有什么办法可以做到这一点而不 JSLint 显示错误。我知道我可以忽略 JSLint 设置中的错误,但是有没有其他方法可
我在 jsLint 中收到以下错误: 'document' was used before it was defined. 导致错误的行: document.cookie = name + "=" +
我使用 hallettj / jslint.vim在 Ubuntu 12.04 上,一切正常。但在 Windows 7(x64) 上,它显示错误: Error detected while proce
我遇到了一些麻烦。我把电脑留在家里去了我的避暑别墅几天,当我回到家并尝试将文件保存在 Sublime Text 2 中时,我收到此错误: module.js:340 throw err;
我们刚刚开始使用JSHint / JSLint,并且正在寻找一些“最佳实践”类型设置,这些设置被广泛认为是严格性和实用主义之间的良好折衷。我在互联网上看过一眼,却找不到任何东西。 我意识到这完全取决于
我有一个通过 JSLint 的巨大脚本(包括避免所有不好的部分)。除了一段,这是一些非常复杂的混淆代码,嵌入在更大的上下文中。 JSLint 对此部分产生了相当多的提示,我想为那段代码选择性地禁用它。
我查看了许多关于通过本地包装函数来消除 jslint 中(必要的)未使用参数错误的 stackoverflow 答案,如下所示: /*jslint unparam: true*/ //my funct
使用 jslint 分析文件时,是否可以使用在另一个 js 文件中声明的全局变量? . 目前我必须在标题中声明我所有的全局变量,但是这真的很慢而且不实用。 /* global console, myg
我正在尝试使 makeprg 和 errorformat 与 VIM 和 jslint 一起使用,但似乎无法为我的生活提供正确的错误格式...我正在使用 nodejs 版本的 jslint,它产生如下
我通过 JSLint 运行了以下命令: $(document).ready(function() { /* Add paragraph on page load */
在注释中使用“不安全字符”(例如变音符)时,出现以下错误: This character may get silently deleted by one or more browsers. 有什么方法
在我的 Angular 应用程序中,我使用循环在对象中查找最接近给定数字的值并返回其键。 例如,我想要最接近 0.5 的值: for (var j in nums) { if (0.5 >
我想使用 JSLint ,但我对可以访问我未经过滤的源代码的工具持谨慎态度。是否有离线版本,或者是否有其他类似的工具可以对 JavaScript 离线进行“lint 错误检查”? 编辑:一个带有 GU
我的代码是: name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 我得到: Unexpected '\'. 为什么我会得到这个?我
JSLint 仅适用于一个 JavaScript 文件。最近,我开始将我的程序分成几个部分。 我不想每次使用 JSLint 检查代码时都将这些片段串起来。使用 JSLint 处理多个文件的标准解决方案
我总是通过向数字添加空字符串来将数字转换为字符串: var string = 1 + ''; 但是,JSLint 提示此方法预期为“String”,而看到了“'''”。,而且它看起来确实有点难看。 有
我正在使用 JSLint 来检查以下代码: 'use strict'; var mathService = { add: add, subtract: subtract, multi
所以我用这个检查了我的javascript:http://www.jslint.com/ 如果我不在 { } 之间包装 IF/FOR 语句,我会收到如下“错误”: Problem at line 15
所以我在最新版本的 jQuery 上运行 JSLint,可在 bit.ly/jqsource 获取。 。我已经尽可能宽松地进行了测试,但仍然会出现错误。其中之一是第 327 行的“使用命名参数”: 目
我根据 JSLint 标准(不包括几个选项)进行编码,我认为将其用于我的浏览器内单元测试可能是个好主意,这样我就不会意外地提交任何未通过它的内容.我使用的是 QUnit,但同样适用于任何浏览器内测试框
我是一名优秀的程序员,十分优秀!