2013-12-18 2 views
0

javascript에서 angularjs를 사용하여 만든 div가 있습니다.ng-bind-html을 사용하여 추가 된 div에 ng-click을 추가하십시오.

$scope.myHTML=$sce.trustAsHtml('<div 
ng-app="mainModule" 
ng-controller="mainCtrl" 
ng-click="updateText()" 
class="squareButton ng-scope"> </div>"); 

HTML :

<div ng-controller="mainCtrl" ng-bind-html="myHTML" class="screenDiv"></div> 

문제는 내가 사업부를 클릭하면 내 UPDATETEXT() 메서드를 호출하지 않는다는 것입니다

$scope.updateText = function() 
{ 
alert("worked"); 
} 

여기에이
JS입니다 div가 표시됩니다. 업데이트 방법은 mainCtrl 컨트롤러에 있습니다.
ng-click이 제대로 작동하지 않거나 아직 지원되지 않습니다.

도움이된다면 페이지를 뒷받침하십시오. http://stevenjohnston.ca/ 모든 사각형이 경고를 팝업해야하지만 그렇지 않습니다.

답변

1

모든 사각형에 HTML을 바인딩 할 특별한 이유가 있습니까?

일부 표 또는 표를 사용하여 각 셀에 바인딩하는 것이 더 쉽습니다.

그래서 당신은 당신이 HTML로 알려져 있지 않다 당신의 HTML에서 뭔가를 쓸 때 DIV

<body ng-controller="mainCtrl"> 
    <!-- Create Table or Grid .Inside each cell add--> 
    <div ng-click="updateText()"></div> 
</body> 
2

외부 controlle 이동할 수 있으며 같은 그 구문을 알고 각도는 당신이 그것을 컴파일해야한다 'NG 클릭'합니다 $ 컴파일러 서비스를 통해. 그렇지 않으면 그것은 angularj와 Html에 의해 평범한 문자열로 취급 될 것입니다. 다음 코드를 사용하십시오.

function htmlGeneratorController($scope, $compile, $sce){ 
$scope.myHTML=$compile($sce.trustAsHtml('<div ng-app="mainModule" ng-controller="mainCtrl" ng-click="updateText()" class="squareButton ng-scope"> </div>'))($scope); 
} 

희망이 도움이됩니다 :)

+0

안녕하세요, 여기 당신의 솔루션을 시도 : http://stackoverflow.com/questions/28129918/how-to-bind-ng-click-function-that- '[$ sce : unsafe] '가 나왔지만 html-trustashtml로 삽입 되었습니까? 이견있는 사람? :) –

관련 문제