2016-03-30 6 views
0

私はToDoリストのWeb上でいくつかのチュートリアルを続けましたが、これらのチュートリアルでは実装にベストプラクティスを使用していないと思います。すべてのコードがコントローラにあります。 私のコントローラーはこのように見えますが、私はchange-listenerのコードがそこで最高の "場所"にないと思います。リスナーを実装する場所はどこですか?AngularJS PouchDB変更リスナー

.controller('TodosCtrl', ['$scope', '$state', 'Todo', function($scope, $state, Todo) { 
    $scope.create = function() { $state.go('todo_create'); }; 
    $scope.todos= []; 
    $scope.$on('$ionicView.loaded', function() { 
    localDB.changes({ 
     since: 'now', 
     live: true, 
     include_docs: true 
    }).on('change', function (change) { 
     if (change.doc && change.doc._id.substring(0, change.doc._id.indexOf('_')) === 'todo') { 
     if (change.deleted) { 
      .... 
     } else { 
      .... 
     } 
     } 
    }); 
    }); 


    Todo.all().then(function (result) { 
    for (var i = 0; i < result.length; i++) { 
     $scope.todos.push(result[i].doc); 
    } 
    }); 


}]) 

答えて

0

概念的には、関連するすべてのコードがDOMに結合されている必要があります。
他のロジックはすべてサービスに挿入する必要があります。正しいことなので、コードは、DOMに関連している...

.controller('TodosCtrl', ['$scope', '$state', 'Todo', function($scope, $state, Todo) { 
     $scope.create = function() { $state.go('todo_create'); }; 
     $scope.todos= []; 
     $scope.$on('$ionicView.loaded', function() { 
      localDB 
       /** Not sure exactly what it is but if that some sort of initialization - this is better to be placed in one of the services 
       .changes 
       ({ 
        since: 'now', 
        live: true, 
        include_docs: true 
       }) 
       */ 
       .on('change', function (change) { 
        if (change.doc && change.doc._id.substring(0, change.doc._id.indexOf('_')) === 'todo') { 
         if (change.deleted) { 
         .... 
         } else { 
         .... 
         } 
        } 
       }); 
     }); 


     Todo.all().then(function (result) { 
      for (var i = 0; i < result.length; i++) { 
       $scope.todos.push(result[i].doc); 
      } 
     }); 
    }]) ; 
+0

しかし、私は、リスナーに$スコープ変数を使用します。

はexmapleのための私のコメントを参照してください? – Andre

+0

@Andre - 正確に – chenop

+0

$ scopeが必要な場合、どのようにしてサービスにリスナーを置くことができますか? – Andre

関連する問題