我不确定以下是否是浏览器问题或bug,如果有任何函数,如下所示,
$scope.editSomething= function(){
alert("hello");
}
始终在开始时调用,如果我编辑某些内容,则网页会按预期执行(警告你好)。但是,除非我加载页面,否则我的断点永远不会达到这一点。
我的问题:范围是否存储了我的功能?或者我的调试器只是表现得很奇怪?
答案 0 :(得分:0)
Your issue is how you are writing the Function. Writing it like this will make the function only executed when you call it:
https://jsfiddle.net/bgerhards/cu4wkaqf/
function Hello(something) {
console.log(something);
};
Hello("Hello World");
If you make a variable a function like you have, it will execute the function and put the return value in the variable
Hello2 = function() {
return "Something Here";
};
console.log("Hello2 Output: "+ Hello2());
答案 1 :(得分:0)
$ scope存储您放置的变量。
变量也可以存储函数。在您的情况下,您将匿名函数分配给名为editSomething
的变量。
每次初始化控制器时,都会执行控制器内部的代码。如果将断点放在$scope.editSomething= function(){
的行上,则每次控制器初始化时都会遇到断点(例如,在页面加载时)。
如果您想查看存储在editSomething
变量中的匿名方法何时执行(例如,在模板中的HTML元素上放置ng-click=editSomething()
然后单击它),那么您应该将断点放在alert("hello");
行。