다른 "함수가 정의되지 않았습니다"라는 질문을 살펴본 적이 있지만 사용 사례에 해당하는 질문을 찾을 수 없습니다. angular.js를 사용하고 있습니다.angularjs 컨트롤러 내에 정의 된 함수에 함수가 정의되지 않았습니다.
나는 처음에는 js에서 동적으로 채워지는 빈 div, #mylist를 가지고 있습니다. 체크 박스의 onChange
이벤트에 할당 할 컨트롤러 내부에 정의 된 함수가 있습니다.
<!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>
기능하지 정의 오류가있는 확인란 결과를 클릭, 실행
여기에 전체 문서입니다.
무엇이 여기에 있습니까? 감사. 당신이 AngularJS와를 사용하는 경우에만 (당신이 범위. 컨트롤러 $ 범위의 필드가 할 수있는 기능을 대신의 onChange 당신이 ngChange 지시어를 사용할 수있는 내부
나는 "당신이 잘못하고있다"라는 의역이 각도 토론 (그리고 일반적으로 사실입니다) 주위에서 말한 가장 일반적인 것이라고 생각합니다. 그래서 기본적으로 jQuery를 사용하여 DOM 요소를 가져 오면 안됩니다 ... 1 초는 내가 쉽게 대답 할 수 있다고 생각합니다. – shaunhusain
당분간 저는 라우팅을 위해 각도를 사용하고 있습니다. 그것은 진보 된 js 개발자가 아니며, 실수가 각도 또는 jq인지 일반 js인지 여부를 알 수 없었습니다. 나를 이끄는 방향으로 도움을 요청하는 것이 합리적이라고 생각합니다. – Steven
@ 스터븐 나는 비하하거나 무례하다는 뜻이 아니었다. 단지 최근에 많이 언급 된 성격과 컬트처럼 들리게하는 "각도 방식"이라는 말을 들었다. 나는 JS 전문가도 아니지만 AS3/Flex에서 AngularJS로 건너 뛰었습니다. jQuery는 항상 내게 엉망인 것처럼 보였습니다. Angular는 모든 막대 사탕이 아니지만, 조직화되고 오류가 발생하기 쉽습니다. 어쨌든 내 대답은 약간의 의미가 있기를 바랍니다. 기본적으로 바인딩을 사용하여 해당 변수를보고있는 함수를 트리거하므로 변수가 변경되면 함수가 트리거됩니다. – shaunhusain