dedlfix: AngularJs feuert nicht

Beitrag lesen

Tach!

Und ich habe auch drei Links wie folgt:

@Ajax.ActionLink(@"MySite3", "", "", new { id = id }, new AjaxOptions { UpdateTargetId = "MyContainer" })

<div id="MyContainer"></div>

Die interessieren für das Problem nicht, weil sie serverseitig arbeiten. Die einzige Information, die man daraus entnehmen kann, ist die ID von dem Element, in das das Ergebnis geladen wird. Die ID allein reicht aber nicht, um das Problem zu verstehen. Allerdings hast du diesmal noch eine Zeile hinzugefügt. Und die gibt nun wenigstens Auskunft über einen Teil der Gegebenheiten. Was auch immer du holst, wird also in ein div geladen.

Was weiterhin fehlt ist die Information, was konkret der Ajax-Aufruf vom Server holt.

<div ng-controler="controller1" ng-init="function1(id)">
   <span ng-binding="myValue1"></span>
<div>

Wo steht dieser Code? Bereits in der Seite oder ist das der Teil, der vom Ajax-Aufruf zurückkommt?

myApp.controller('controller1', ['$scope', function($scope, $interval) {
  $scope.function1 = function(value) { $scope.myValue1 = value * 2; };
}]);

$interval($scope.function1 ..., 5000)

Wo steht dieser Code? Bereits in der Seite oder ist das der Teil, der vom Ajax-Aufruf zurückkommt?

Nun beim ersten mal und beim Einstieg wird die erste Seite geladen und da funktioniert auch alles gut. Wenn man aber über einen ActionLink eine andere Seite in den Container lädt, wird die entsprechende function in der Controller, die in ng-init drin steht, nicht meher aufgerufen.

Tja, damit kann ich noch nichts anfangen, weil mir die Zusammenhäge noch nicht klar sind.

Andere Idee: Reicht es nicht, wenn HTML (vielleicht auch als Angular-Template) und Javascript bereits in der Seite sind (direkt oder verlinkt ist dabei egal) und der Ajax-Aufruf nur Daten zurückgibt, die dann passend eingebaut werden? Dann wäre es vermutlich auch besser, wenn du den Ajax-Aufruf mit den Angular-Möglichkeiten ausführst. In dem Fall gibts ja dann auch ein Promise, in dessen then-Handler du machen kannst, was auch immer du machen musst.

dedlfix.