2015-04-28 2 views
8

ho questo codice in mycontroller aggiungerò questo html() al mio html, tutto bene solo ng-click dos not work! avervi un idee perché ng clic dos non funzionareaggiungi un html include ng-click in angularjs

var html='<div ng-click="selectedValue('+Value+')">Value</div>' ; 
    $('#myDiv').html(html); 

    $scope.selectedValue = function(value){ 
    $scope.val =value; 

    }; 

devo slect il valore visualizzato nel div utilizzando ng clic funzione SelectedValue

risposta

17

uso di questo codice:

Vedi pluker

Controller:

var html='<div ng-click="selectedValue(value)">Value</div>', 
    el = document.getElementById('myID'); 

$scope.value='mk'; 

angular.element(el).append($compile(html)($scope)) 

$scope.selectedValue = function (value) { 
    $scope.val = value; 
    console.log($scope.val) 
}; 

Html:

<body ng-controller="MainCtrl"> 
    <div id="myID"></div> 
</body> 
+1

Risposta molto buona! Mi hai salvato la giornata. – Nere

+1

@mukund: c'è un modo in cui possiamo aggiungere html nel servizio angularjs non nel controller? – Sagar

4

Si dovrebbe fare manipolazione del DOM tramite direttiva solo, ci si assicura è necessario compilare l'elemento prima di iniettarlo.

Codice

var html='<div ng-click="selectedValue('+Value+')">Value</div>' ; 
angular.element(document.getElementByID('myDiv')).append($compile(html)(scope)); 
+0

'.append' lavora con direttiva, ma non' .prepend' aggiungere qualsiasi div prima abbinato div elemento. – Slimshadddyyy

+0

È vero. jQuery è già incluso. Qualsiasi altra alternativa in Angolare per anteporre/inserire prima di ogni elemento? Anche anteporre fa parte di jqlite - https://docs.angularjs.org/api/ng/function/angular.element – Slimshadddyyy

+0

@Slimshadddyyy my bad. quindi anteporre dovrebbe funzionare anche –