Jestem nowicjuszem do Angularjs. Często otrzymuję ten błąd, gdy próbuję nacisnąć obiekt do tablicy.
Próbuję wiele sposobów, ale nie wiem, co z tym nie tak.

Dostaje to błąd: $ scope.todo jest niezdefiniowany.

Oto mój kod (link pod adresem http: // PLNkr.co/edit/rvhlhuwlr7usytalhkjh)

. Kiedy dodam $ scopion.todo = {}; Nie może uzyskać tytułu, który wprowadzam i pcham pusty tytuł. Proszę wyjaśnić szczegółowo i wyraźnie dla mnie, że rozumiem więcej o $ zakres i formularz wejściowy w kontrolerze. Dzięki

To jest mój kod modułu

angular.module('todoApp',['ionic'])
  .controller('todoCtrl', function($scope){
    $scope.todos = [
        {title: "Go to the cinema"},
        {title: "Take some books"},
        {title: "Check out booking room"}
      ];
    $scope.addTodo = function(){
      $scope.todos.push({title: $scope.todo.title});
      $scope.todo.title = '';
    };
  });
0
Huy Do 12 sierpień 2014, 06:19

2 odpowiedzi

Najlepsza odpowiedź

Jak wydaje się twój kod

$scope.addTodo = function(){
      $scope.todos.push({title: $scope.todo.title});
      $scope.todo.title = '';
    };

W linii {X0}} Nadal nie masz $ Sistand.todo.title zdefiniowany, ponieważ definiujesz go na następnej linii.

Zmień kod do.

angular.module('todoApp',['ionic'])
  .controller('todoCtrl', ['$scope', function($scope){
    $scope.todo = {};
    $scope.todos = [
        {title: "Go to the cinema"},
        {title: "Take some books"},
        {title: "Check out booking room"}
      ];
    $scope.addTodo = function(){
      $scope.todos.push({title: $scope.todo.title});
      $scope.todo = {};
    };
  }]);

Edytowałem twój plunker Oto wygląd. Wprowadziłem zmiany w html i script.js http://plnkr.co/edit/z1fg0rg6cubsjjoy9wie?p=preview

1
Parv Sharma 12 sierpień 2014, 02:53

Problemem jest $ Sistand.Todo nie jest jeszcze zdefiniowany.

W ramach funkcji $ scopion.addodo po prostu dodaj:

$ scopion.todo = {};

$ scopion.todo.title = '';

Po funkcji. Następnie jest inicjowany.

angular.module('todoApp',['ionic'])
  .controller('todoCtrl', function($scope){
     $scope.todos = [
       {title: "Go to the cinema"},
       {title: "Take some books"},
       {title: "Check out booking room"}
     ];
     $scope.addTodo = function(){
         $scope.todos.push({title: $scope.todo.title});
         $scope.todo.title = '';
     };
     $scope.todo = {}
     $scope.todo.title = '';
});
1
Jordan 12 sierpień 2014, 02:50