我正在处理一些遗留代码,并对它的设置方式感到困惑。当使用jquery或带有角度的ng模型时,我只知道在HTML和JS之间使用类,id,元素等进行通信。
但是,在这段代码中,有一个控制器在页面加载时立即调用服务://someController.js
someService.getStuff().then(function (result) {
$scope.stuffToDisplay= result;
});
//someService.js
var getStuff = function () {
return $http.get('http://www.someapi.com/?userInput=' + userInput).then(function (result) {// where did the variable "userInput" come from?
return result.data;
});
}
如上所示。请注意,在getStuff
的定义中,没有接受会考虑userInput
的参数。此外,“someService.js”中没有其他地方定义的变量称为userInput
。
然而,在HTML中有一个输入字段,id='userInput'
和ng-model='userInput'
。话虽如此,在名为userInput
的控制器中的任何地方都没有范围变量,当我从输入元素中取出模型时,没有任何中断。但是,当我删除id='userInput'
时,我会得到
ReferenceError:未定义userInput
当我替换id='userInput'
时,在getStuff
上设置断点,并将userInput
记录到控制台,它会打印出整个HTML输入元素!我错过了什么?我不知道这是可能的。它显然是,但如何??