我在应用程序中使用角度,基本上是一个包含搜索结果的表格.可以通过类似URL来访问此表http://myapp/?client=clientName
除了其他之外,还为表格实例化角度控制器,用于打开具有行细节的模态对话框(也是基于角度的,具有bootstrap-ui).
这些行详细信息是通过一个服务引入的,该服务具有两个控制器的一些通用功能:一个用于表,一个用于模态.
现在,在此服务中,我有以下代码片段来检索:
service.fetchRelatedElements = function(element, cb) {
var url = '/search.json?results=20&type='+element.type;
if ($location.search()['client']) {
url += '&client=' + $location.search('client');
}
return doFetch(url, cb); // actual server json GET
};
Run Code Online (Sandbox Code Playgroud)
目标是知道表是否已将此特定client参数设置为过滤器.
如果我在这个调用的开头放了一个断点,我看到它$location.absUrl()返回当前的浏览器URL(在我的例子中,它有client我感兴趣的参数).
但是$location.search()返回一个空对象.
我使用默认值(即不通过.config()调用配置它)在我的服务中注入$ location服务.而且,正如医生所说:
$ location服务解析浏览器地址栏中的URL(基于window.location),并使URL可供您的应用程序使用.
我错过了什么吗?此时不应该解析URL吗?
谢谢!
更新:我设法让它工作.问题是我没有配置所有服务.我之所以这样做,是因为我认为以这种方式它会采取默认值,但似乎这不是它的工作方式.
给定一个项目,其节点package.json安装了 eslint 和一些插件,我怎么知道在哪里设置了特定规则?
我看到正在应用一条规则 ( space-before-function-paren),但.eslintrc在项目的任何文件或插件文档中都找不到它。
此外,我正在使用带有一些扩展的 VSCode,例如 ESLint 本身,这可能会干扰这里,但我再次不确定如何/在哪里检查哪个部分正在应用该规则(尽管我认为这不太可能是发生,npm run lint如果代码不符合上述规则,则失败。
我正在发布 package.json 文件的相关部分:
{
// ...
"scripts": {
"watch": "NODE_ENV=development node build/build.js --watch",
"build": "NODE_ENV=development node build/build.js",
"build:prod": "NODE_ENV=production node build/build.js",
"unit": "NODE_ENV=test jest --config test/unit/jest.conf.js --coverage",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit/specs",
"ci-lint": "eslint --ext .js,.vue src test/unit/specs --format checkstyle --output-file lint_out/unit_timeline.xml"
},
"devDependencies": {
"@vue/test-utils": "^1.0.0-beta.27",
"autoprefixer": "^8.2.0",
"babel-core": "^6.26.0",
"babel-eslint": "^8.2.2",
"babel-jest": "^22.4.3",
"babel-loader": …Run Code Online (Sandbox Code Playgroud)