我查看了其他“函数未定义”的问题,但似乎找不到适用于我的用例的问题。我正在使用angular.js。在angularjs控制器中定义的函数没有定义函数的错误
我有一个最初空的div,#mylist,我在js中动态填充。我在控制器中定义了一个函数,我将其分配给一个复选框的onChange
事件。
以下是完整的DOC:
<!doctype html>
<html data-ng-app="testapp">
<head>
<script src="jquery-1.10.2.min.js"></script>
<script src="angular.min.js"></script>
<script>
var app = angular.module("testapp", []);
app.controller("MyAppController", function ($scope) {
createCheckbox();
function doSomething() {
alert("hello!");
}
function createCheckbox() {
$("#mylist").html("<input type='checkbox' onChange='javascript:doSomething();' />");
}
});
</script>
</head>
<body data-ng-controller="MyAppController">
<div id="mylist"></div>
</body>
</html>
运行时,点击的功能没有定义错误的复选框结果。
我在这里错过了什么?谢谢。
我认为“你做错了”的一些解释是关于角色讨论(通常是正确的)所说的最常见的事情。所以基本上你不应该使用jQuery来获取DOM中的元素......一秒钟我认为我可以很容易地回答。 – shaunhusain
目前,我正在使用角度来进行路由。很明显,我不是高级js开发人员,我无法分辨这个错误是使用angular还是jq还是plain js。我认为在这一点上寻求帮助可以带领我走向一个方向是合理的。 – Steven
@Steven我不是故意粗鲁/粗鲁,只是说我最近听到过很多这种性质的说法,还有那个让角色听起来像是邪教的角色。我也不是JS专家,但是从AS3/Flex跳到AngularJS。对我来说,jQuery总是显得有些混乱(不是Angular是棒棒糖,但感觉更有组织,并且更不容易出错)。无论如何,希望我的回答有道理,基本上我使用绑定来触发一个正在监视该变量的函数,所以当它发生变化时,我正在触发一个函数。 – shaunhusain