Ich bin neu in AngularJS und habe mich gefragt, wie ich die Werte in meinem übergeordneten Bereich in meinen Anweisungsbereich ohne Bindungen (2 separate Instanzen) kopieren würde. Momentan läuft meine Implementierung so, wie es ist, mit meinem newHostTemplate, das {{newHost.ipAddress}}
aufruft, aber ich will, dass newHost vom Direktivenumfang und nicht vom Elternteil ist.Kopieren von Werten aus dem übergeordneten Bereich in den Richtlinienbereich
host.directive('newHost', function(){
return {
restrict: 'E',
template: '<div ng-include="getTemplateUrl()"></div>',
scope: true,
link: function(scope, element, attr) {
scope.newBox = function() {
scope.getTemplateUrl = function() {
return 'hosts/newHostTemplate.html';
}
}
}
}
});
host.controller('hostsController', function($scope, $http, $window, $rootScope){
$rootScope.$on("$routeChangeError", function (event, current, previous, rejection) {
console.log("failed to change routes");
});
$scope.newHost = {};
$scope.addNewHost = function() {
$http({
method : 'POST',
url : 'http://192.168.0.99:5000/newHost',
data : JSON.stringify($scope.newHost), // pass in data as strings
})
.success(function(data) {
console.log(data);
$scope.newBox()
$scope.newHost = {}
//on success we want to close the modal and reset the data
$scope.dismiss()
});
};
});
Derzeit, wenn ich dies ausführen, bekomme ich eine Fehlermeldung, dass newBox keine Funktion ist.
Hallo Artem, wie würde der oben Umfang gilt für mein Szenario – DorkMonstuh
Ihr Anwendungsbereich Eingang Anwendungsbereich wäre: {host: ‚=‘} und Sie im Rahmen passieren würden .newHost vom Controller zur Richtlinie über –
Warum haben Sie die Vorlage mit ng-include einer statischen Vorlagen URL anstelle von templateUrl: '' hosts/newHostTemplate.html '' ? Dies verhindert zusätzliches Scoping, das von ng-include erstellt wird. Die Vorlage wird direkt im Geltungsbereich der Richtlinie enthalten sein. –