On the docs Ho visto un esempio di compilazione di "qualcosa" aggiunta in seguito.angularjs compile ng-controller e interpolazione
var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
ho aggiunto questo codice su una funzione pronta jQuery, ma ho due problemi:
primo è un errore: Argument 'MyCtrl' is not a function, got undefined
.
Il secondo è che non so come farlo funzionare content.label
! L'ho aggiunto allo scope
ma non funziona. Come dovrei chiamare il mio controller per vedere il working data binding di content.label
?
MY codice modificato finale è:
var app = angular.module('app',[]);
$(function(){
app.controller('MyCtrl',function($scope){
$scope.content = 123;
});
var $div = $('<div ng-controller="MyCtrl">{{content}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
});
Il vostro codice di cui sopra hanno errori? (Ad esempio '$ scope.content' non è definito?) - stai includendo il JS? – tymeJV
per favore guarda la modifica. L'unico errore è quello mostrato sopra –
È possibile derivare dall'html che l'etichetta è una proprietà del contenuto. ($ scope.content.label = "something" o $ scope.content = {label: "something"};) – skubski