Ich habe eine Ansicht mit einer ng-include-Direktive. Der Wert ist an ein Modell gebunden.AngularJS wie man eine Zusage von einer ng-include-Direktive zurückgibt
Das Modell kann außerhalb des Controllers mit plain javascript geändert werden.
var promise = angular.element(controller).controller().navigateTo("controller/view");
Dann in meinem Controller habe ich das Modell eingestellt.
vm.goTo = function (url) {
$scope.$apply(function() {
vm.guestUrl = $sce.trustAsResourceUrl(url);
});
};
I can use the includeContentRequested event, but how do I return the promise ?
$scope.$on('includeContentRequested', function (e) {
});
Jetzt bin ich nicht mit ng-schließen ein, aber die $ HTTP-Anforderung zu tun und die mich $ kompilieren, so kann ich ein Versprechen zurück.
vm.navigateTo = function (url) {
var deferred = $q.defer();
var promise = $http({
method: 'GET',
url: url
});
promise.then(function successCallback(response) {
var container = $('#mainContainer');
container.empty();
var html = response.data;
container.append(html);
$compile(container)($scope);
deferred.resolve('ok');
}, function errorCallback(reason) {
deferred.reject(reason);
});
return deferred.promise;
};
Ich denke, es sauberer ist ein ng-Include-Direktive zu verwenden.
Kann jemand eine Zusage im IncludeContentRequested-Ereignis zurückgeben?
Ich komme mit diesem Code, um möglich zu sein, den Host zu benachrichtigen, aber es ist hässlich. Also ich denke ich ruhe mich mit meinem $ http Anruf aus.
vm.goTo = function() {
var deferred = $q.defer();
$scope.$apply(function() {
vm.guestUrl = $sce.trustAsResourceUrl('http://localhost:63661/');
});
$scope.$on('$includeContentLoaded', function (args) {
deferred.resolve('ok');
$scope.$destroy('$includeContentLoaded');
});
return deferred.promise;
};
Sicher scheint wie ein langer Weg, um ohne Ihre eigene einfache Richtlinie zu schaffen, um jQuery – charlietfl
zu verwenden @charlietfl dies, weil ist Es heißt von einem anderen Projekt, das AngularJS nicht enthalten hat –
Aber wenn Sie die eckige App eingeben, können Sie einfach ein eckiges Ereignis verwenden, um eine Anweisung zu aktualisieren – charlietfl