Mein Code funktionierte, bis ich begann, ng-include
zu verwenden. Jedes Mal, wenn ich auf eine Seite gehe, die diese Anweisung verwendet, bleibe ich auf der Seite stecken. Der Zurück-Button funktioniert nicht mehr und du bleibst für immer in einer Schleife der gleichen Seite.AngularJS ng-include tun HistoryJS aufhören zu arbeiten
Meine Website läuft mit Asp.NET MVC 5.
Einige Bits meines Codes:
HTML "host"
<div id="place">
<div data-ng-include="'/app/angular/views/place.html'"></div>
</div>
HTML place.html
<div>
<h1>{{place.PlaceName}}</h1>
<ul class="unstyled-list">
<li data-ng-repeat="hint in place.Hints">
<!-- more code -->
</li>
</ul>
</div>
JAVASCRIPT
$scope.place = { };
// 'maps' is a google maps plugin
maps.autoComplete({ success: function(result) {
// gets the result of the user search
History.pushState({ name: result.name, id: result.id }, result.name, '/place/' + result.id);
});
History.Adapter.bind(window, 'statechange', function() {
var state = History.getState();
// go to the server and get more info about the location
$mapService.getMetaInfo({id: state.data.id}).then(function (d) {
// get place info
$scope.place = d;
});
});
Wenn ich die ng-include
entfernen und ersetzen Sie es mit dem "rohen" html, es funktioniert gut. Diese "Endlosschleife" tritt nur auf, wenn ng-include
hinzugefügt wird.
Ich denke, Sie sollten zeigen, wie Sie die 'ng-include'-Direktive verwenden, und falls Sie es richtig verwenden, sollten Sie einen Plucker bereitstellen, der das Problem reproduziert. – Stewie
Sie sollten jedes externe Plugin in eine Angular-Direktive umwandeln, wobei das Mischen von zwei verschiedenen Paradigmen für die DOM-Manipulation nicht sinnvoll ist. –
Ich kann mir nicht vorstellen, dass irgendjemand das macht.Wenn es ein einfaches Plugin wäre, würde ich dir zustimmen, aber ** irgendein ** Plugin ... es ist irgendwie zu schwer, findest du nicht? –