Ich habe die Methode console.log(data)
in meinem Controller nur einmal aufgerufen, aber die Ausgabe in der Konsole wird zweimal angezeigt.Angular 1: Doppelter Konsolenausgang
Dies ist die Steuerung:
taskAppControllers.controller('ToDoCtrl', ['$scope',
function($scope){
$scope.loadToDoItems = function(){
var data = ls.get("toDoData");
if (data == null) data = [];
console.log(data);
}
$scope.toDoItems = $scope.loadToDoItems();
$scope.addToDoItem(){};
}]);
Und dies ist der Ansicht:
<div ng-controller="ToDoCtrl">
<form>
<input type="text" ng-model="toDoItem">
<input type="submit" ng-click="addToDoItem()">
</form>
</div>
Der Router:
var TaskApp = angular.module('TaskApp', [
'ngRoute',
'taskAppControllers'
]);
TaskApp.config(['$routeProvider',
function($routeProvider){
$routeProvider.
when('/home', {
templateUrl: "partials/home.html",
controller: "HomeCtrl",
title: 'Home',
icon: 'ion-android-menu',
link: '#/main-menu'
}).
when('/main-menu', {
templateUrl: "partials/main-menu.html",
controller: "MainMenuCtrl",
title: 'Main menu',
icon: 'ion-close',
link: '#/'
}).
when('/todo', {
templateUrl: "partials/todo.html",
controller: "ToDoCtrl",
title: 'To do',
icon: 'ion-close',
link: '#/main-menu'
}).
otherwise({
redirectTo: "/home"
});
}]);
'$ scope.loadToDoItems()' gibt nichts zurück. Vermutlich rufen Sie es an oder lösen es irgendwie anders als '$ scope.toDoItems = $ scope.loadToDoItems()' aus, das ausgeführt wird, wenn Ihr Controller erstellt wird. Kann nicht eine 'addToDoItem()' Methode auf Ihrem '$ Scope' entweder – Phil
@Phil Yeah, weil ich es vorübergehend gelöscht. – Kunok
Wo sonst rufen Sie 'loadToDoItems()' auf? Wie wird die Ansicht geladen/aufgenommen? – Phil