0

I'm making a simple mailer interface and I have a setup that looks like ...

                <tbody ng-controller="sentboxCtrl">
                    <tr ng-repeat="message in sent">
                        <td><input type="checkbox" value="{| message.id |}"></td>        
                        <td><a href="#" value="{| message.id |}" class="view-message-link">{| message['subject'] |}</a></td>
                        <td>

                            <img class="attachement" value="{| message.id |}" ng-if="message.attachment" src="{| attachmentIcon |}" width="20" height="20" alt=""></td>
                        <td>{| message.name |}</td>        
                        <td>{| message.created |}</td>
                        <td><a href="#" value="{| message.id |}" class="flagMessage"><img value="{| message.id |}" src="{| flagIcon |}" width="20" height="20" alt=""></a></td>
                        <td><a href="#" value="{| message.id |}" class="deleteMessage" ng-click="delete({| message |})"><img value="{| message.id |}" src="{| deleteIcon |}" width="20" height="20" alt=""></a></td>
                    </tr>   
                 </tbody> 

My code that configures my controller is as follows:

var mailApp = angular.module('mailApp',[]).config(function($interpolateProvider){
        $interpolateProvider.startSymbol('{|');
        $interpolateProvider.endSymbol('|}');
    }
);

var sentboxCtrl = function ($scope){

    $scope.sent = initiallySent;
    $scope.deleteIcon = deleteIconSource;
    $scope.flagIcon = flagIconSource;
    $scope.attachmentIcon = attachmentIconSource;

    $scope.delete = function(element)
    {
        delete element;
    }

};

mailApp.controller('sentboxCtrl',sentboxCtrl);

Now since I have an ng-repeat attribute that generates my dom for the messaging platform, I would like to tie in the event ng-click to trigger a delete for that row. An example would be:

<td><a href="#" ng-click="delete(this)" value="{| message.id |}" class="deleteMessage" ng-click="delete({| message |})"><img value="{| message.id |}" src="{| deleteIcon |}" width="20" height="20" alt=""></a></td>

Is it possible to do this without writting too much boiler plate code?

Thanks

1
  • If the row is generated from the ng-repeat, you should simply delete the element from $scope.sent. Commented Oct 15, 2013 at 21:54

1 Answer 1

1

In your controller:

$scope.delete = function(i) {
   $scope.sent.splice(i, 1);
}

HTML

<a href="#" value="{| message.id |}" class="deleteMessage" ng-click="delete($index)"><img value="{| message.id |}" src="{| deleteIcon |}" width="20" height="20" alt=""></a>
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks! I got the answer on my own to, but this is exactly what I did anyway.
That is what's important.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.