2016-03-30 16 views
0

Denetleyicimde yalnızca bir kez console.log(data) yöntemini çağırdım ancak konsoldaki çıkış iki kez görüntülenir. Açısal 1: Çift konsol çıkışı

enter image description here

Bu

kontrolör geçerli:

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(){}; 
}]); 

Ve bu görünümdür:

<div ng-controller="ToDoCtrl"> 
    <form> 
    <input type="text" ng-model="toDoItem"> 
    <input type="submit" ng-click="addToDoItem()"> 
    </form> 
</div> 

yönlendirici:

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" 
     }); 
    }]); 
+0

'$ scope.loadToDoItems()' hiçbir şey döndürmez. Muhtemelen, kumandanız oluşturulduğunda çalışan $ scope.toDoItems = $ scope.loadToDoItems() 'dan başka bir şekilde arıyor veya tetikliyorsunuz. '$ Kapsamınızdaki' addToDoItem() 'yöntemini göremiyorum – Phil

+0

@ Phil Evet, çünkü onu geçici olarak sildim. – Kunok

+0

Başka nereye 'loadToDoItems()' diyorsunuz? Görünüm nasıl yüklenir/dahil edilir? – Phil

cevap

2

Sen u olmamalı Yönlendirmeyi kullandığınız için, HTML’nizde ng-controller se. ng-view kullanmalısınız.

Yönlendirme belgelerini denetleyin, like here.

Belki de denetleyiciniz bir kez HTML'den ve bir kez de yönlendiriciden yürütülür.

İlgili konular