我有一个ember.js项目(ember_cli),其中包含以下内容:
Sessions.hbs:
<form class="form-horizontal">
<div class="form-group">
<label class="control-label col-xs-1 col-xl-1">Username:</label>
<div class="col-xs-4 col-xl-4">
{{view Ember.TextField classBinding=":sessions-query" valueBinding="FilterUserName"}}
</div>
</div>
<div class="form-group">
<div class="col-xs-1 col-xl-1">
<button id="query-sessions" {{action "querySessions"}}>Search</button>
</div>
</div>
</form>
sessions.js(控制器):
export default Ember.ArrayController.extend({
actions: {
querySessions: function () {
var arr_simple_params = {};
if ((typeof FilterUserName !== "undefined") && (FilterUserName !== "")) {
arr_simple_params["user_name"] = FilterUserName;
}
....
}
}
});
JSHint给了我:
controllers/sessions.js: line 25, col 55, 'FilterUserName' is not defined.
但是当我实际使用变量时(方法的其余部分用它来构建查询字符串)一切正常
所以我想知道它为什么会发生(而不只是压制警告......)
答案 0 :(得分:3)
JSHint感到不安,因为你引用了一个全局变量。你应该在控制器的开头输入这样的FilterUserName
:
import FilterUserName from 'path-to-filter'
或警告JSHint你正在使用全局:
/* global FilterUserName */
如果您在其他地方使用FilterUserName
,也可以将其添加到.jshintrc
。