내가 시도하려는 :javascript에 angularJS 속성이있는 HTML을 삽입하는 방법은 무엇입니까?
function test(){
$('#somediv').html('<div ng-model="name">{{name}}</div>');
}
이 작업을 수행 할 수있는 방법이 있습니까?
내가 시도하려는 :javascript에 angularJS 속성이있는 HTML을 삽입하는 방법은 무엇입니까?
function test(){
$('#somediv').html('<div ng-model="name">{{name}}</div>');
}
이 작업을 수행 할 수있는 방법이 있습니까?
$compile
서비스를 사용해야합니다.
그냥 같은 HTML 문자열을 컴파일 :
var html = $compile('<div ng-model="name">{{name}}</div>')($scope);
$compile
서비스를 주입하는 것을 잊지 마십시오.
Hasan Ibrahim에게 감사드립니다. 제 각기 콘트롤러에서 같은 생각을하려고했으나 뭔가 잘못되었습니다 : http://stackoverflow.com/questions/43603948/angularjs-compile-is-not-a-function –
@ NhạHoàng도이 문제를 허용합니다. –
각도의 기본 제공 지시문이 들어있는 html을 추가 할 때 각도 인식을 위해 $compile
으로 다시 컴파일해야합니다.
은 아래 코드 스 니펫을 참조하십시오.
angular.module("app", [])
.controller("myCtrl", function($scope, $compile) {
$scope.name = 'test value';
$scope.test = function() {
var element = angular.element($('#somediv'));
element.html('<div ng-model="name">{{name}}</div>');
$compile(element)($scope);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="app" ng-controller="myCtrl">
<input type="text" ng-model="name">
<button ng-click="test()">Add</button>
<div id="somediv"></div>
</div>
:
angular.module("main", []).controller("mainController", function($scope){
$scope.toggle = function(){
$scope.show = !$scope.show;
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js"></script>
<html ng-app="main">
<head> </head>
<body ng-controller="mainController">
<div>
<button ng-click="toggle()"> Toggle Div </button>
<div ng-if="show"> Div Contents </div>
</div>
</body>
</html>
jQueryish DOM의 조작과 좋은 방법이 아닙니다 모난. 이 목적으로'ng-show/hide'와'ng-if'를 대신 사용할 수 있습니다. – tanmay