J'ai un problème dynamique des composants de chargement avec {{}} à l'aide angulaire 1.6.xAngularJS 1.6.x Dynamiquement charger des composants avec la chaîne html et ng-if = "{{}}"
Je peux charger la composants dynamiquement très bien en utilisant la compilation, mais le problème auquel je fais face est d'ajouter un ng-if = {{}} à la chaîne html.
Si j'emprunte cette route, cela prendra tout ce que vm.page est réglé à ce moment-là. à-dire 1:
for (var i = 0; i < vm.wizardPages.length; i++) {
var newScope = $scope.$new(true, $scope);
newScope = angular.merge(newScope, vm.wizardPages[i]);
var html = '<' + vm.wizardPages[i].componentName + ' ng-if="' +
vm.page + ' === ' + (i + 1) + '"></' + vm.wizardPages[i].componentName
+ '>';
var element = $('page');
element.append($compile(html)(newScope));
}
Au-dessus rend:
<service-center-branch-selection ng-if="1 === 1" class="ng-scope ng-isolate-scope">
...
</service-center-branch-selection>
Comment puis-je appeler compiler avec {{}} dans la chaîne si vm.page utilise la liaison de données et peuvent changer lorsque la valeur change vm.page ?:
// loop through the data and inject components
for (var i = 0; i < vm.wizardPages.length; i++) {
var newScope = $scope.$new(true, $scope);
newScope = angular.merge(newScope, vm.wizardPages[i]);
var html = '<' + vm.wizardPages[i].componentName + ' ng-if="{{vm.page}} === ' + (i + 1) + '"></' + vm.wizardPages[i].componentName + '>';
var element = $('page');
element.append($compile(html)(newScope));
console.log(newScope);
}
Je veux que ci-dessus pour travailler avec:
<service-center-branch-selection ng-if="vm.page === 1" class="ng-scope ng-isolate-scope">
...
</service-center-branch-selection>
Merci pour la réponse. Si je retire les barres de poignée angulaire ne lie pas à vm.page. Donc, si vm.page = 1 le balisage avec toujours seulement dire vm.page et non 1 === 1. –
@DrewBomb utilisez-vous controller comme syntaxe vm ou $ scope pour votre vue? – Dillon
controllerAs: "vm" –