0

私は Angular の初心者で、ディレクティブで $http と $location を使用することに関して愚かな質問があります。Todo リストを作成していて、リンクをクリックしたときにエントリを削除したいと考えています。

現在、私はに属性ディレクティブを設定しており<a>、クリックされたときに API への削除呼び出しを行いたいと考えています (バックボーンでこれを行う場合、呼び出しをトリガーするクリック イベントをバインドするのに似ていると考えていました)。コレクションからモデルを削除し、それに応じてコードを構成しましたか?)

指令

app.directive('delete', function() {
  return {
    link: function(scope, element, attrs) {
      element.bind('click', function(event) {
        scope.$apply(function() {
          $http.delete('/api/posts/' + $routeParams.id).
            success(function(data) {
              $location.path('/app')  
            })
        })
      })
    }
  }
})

コントローラ

app.controller('IndexCtrl', ['$scope', '$http', '$location'
function($scope, $http, $location) {
  $http.get('/api/posts').
    success(function(data) {
      $scope.posts = data.posts;
    })
}
]);

マークアップ

div(ng-controller='IndexCtrl')
  h1 Blog
  div 
    a.btn(href='/app/newpost') New Post
  ul
    li(ng-repeat='post in posts')
      a(href='/app/{{ post._id }}')
        h3 {{ post.title }}
        div {{ post.text }}
      a(href='/app/editpost/{{ post._id }}') Edit 
      a(href='#', delete id='{{post._id }}') Delete
4

1 に答える 1

2
app.directive('delete',['$http', '$location',function($http, $location) {
 //your code ..
}]);

コントローラーのDIと同じ方法

于 2013-06-09T02:37:31.757 に答える