지시문과 '$ compile'이 각도로 작동하는 방식을 이해하려고하므로 html 버튼을 onclick 함수와 함께 각도 변수에 바인딩하려고합니다.각도 지시문을 사용하여 함수에 매개 변수를 전달할 수 없음
더 구체적으로 말해서, 버튼을 클릭하면 팝업이 표시되어 일부 텍스트가 표시됩니다.
angular.module("myApp").controller('myController', ['$scope', function ($scope) {
$scope.foo = function (input) {
alert(input);
};
var str = "clicked";
var result = "<button ng-click='foo(str)'>click me</button>";
$scope.test = result;
}
: 여기
angular.module("myApp").directive('compile', ['$compile', function ($compile) {
return function(scope, element, attrs) {
scope.$watch(
function(scope) {
return scope.$eval(attrs.compile);
},
function(value) {
element.html(value);
$compile(element.contents())(scope);
}
)}
}]);
그리고 컨트롤러가있다 : 나는 '컴파일'지시어를 정의하는 방법
다음<div compile="test"></div>
은 다음과 같습니다
는 (가능한 한 간단하게) 내 HTML입니다위의 코드가 작동하지 않으면 경고에 '정의되지 않음'이 표시됩니다. 대신 다음을 수행하면 작동합니다.
var result = "<button ng-click='foo(\"clicked\")'>click me</button>";
내가 누락 된 아이디어가 있습니까? 함수 foo에 매개 변수를 전달하려면 어떻게해야합니까?
미리 감사드립니다.
덕분에, 지금 작동 – DimitrisChousiadas