2015-04-02 43 views
1
var app = angular.module('TodoApp', []); 

app.controller('TodoCtrl', function($scope){ 

    $scope.todos = ['test']; 

    $scope.done = function(todo){ 
      var indexOf = $scope.todos.indexOf(todo); 
      if (indexOf !== -1) { 
       $scope.todos.splice(indexOf, 1); 
      } 
    }; 

    $scope.add = function() { 
      $scope.todos.push($scope.newTodo); 
      $scope.newTodo= ''; 
    }; 

}); 

我是新来的angularjs和写一个简单的待办事项列表。我希望$ scope.todos中的数据是动态的,所以无论何时用户移动到我网站的另一个页面并返回时,他都会得到与之前输入的相同的待办事项。我正在考虑使用PHP的会话变量来存储数据,并将其传递给角度的应用程序,但我不知道该怎么做,或者这种逻辑不适合。我是新的,所以任何新的想法太棒了。如何使用Php会话变量作为Angular Js的数据

回答

1
  1. 可以使用cookielocal storage存储用户的待办事项列表

  2. 当使用PHP session.if你不想做一个额外的Ajax调用,你必须呼应在页面的价值。

通过在您的php文件中回显json来使todo列表成为全局变量。

var g_todos = <?php echo json_encode($_SESSION['todo'] ?>;

在控制器

if(typeof g_todos === 'object' && g_todos.length){ 
    $scope.todos = g_todos; 
}else{ 
    $scope.todos = []; 
} 

我认为使用Cookie或localStorage的比较好,第二种方法是相当难看....