【问题标题】:How to pass an id from view(HTML) to an AngularJs controller when onclick event is triggered?触发 onclick 事件时,如何将视图(HTML)中的 id 传递给 AngularJs 控制器?
【发布时间】:2016-09-20 22:25:09
【问题描述】:

我正在使用 ASP.NET 和 AngularJs 构建应用程序。我正在尝试将对象 ID 从视图(HTML)传递到 Angular 控制器,然后对 api 进行 http 调用。单击删除链接时,我不知道如何从该表中传递特定对象的 id。

<table class="table table-responsive table-striped">
        <tr ng-repeat="post in viewModel.posts">

            <td>{{ post.text }}</td>
            <td>{{ post.postedOn | date:'medium' }}</td>
            <td><a href="#" class="btn btn-sm">Edit</a></td>

            <td><a ng-click="viewModel.deletePost" class="btn btn-sm">Delete</a></td> 

        </tr>
</table>

这就是我尝试从控制器调用 API 的方式

// delete post function
viewModel.deletePost = function () {

        viewModel.errorMessage = "";

        $http.delete("http://localhost:61878/api/posts", viewModel.newPost.id)
            .then(function (response) {

                // sucess delete
                viewModel.posts.delete(response.data);

                viewModel.newPost = {};

            }, function () {
                // failed to delete

                viewModel.errorMessage = "Failed to delete post"
            })
            .finally(function () {

            });
    };

有人知道如何将点击的行上相应帖子的 id 传递给 Angular 控制器吗?

【问题讨论】:

    标签: javascript html asp.net angularjs


    【解决方案1】:

    viewModel.deletePost 是一个函数 - 只需使用参数调用它。

    <a ng-click="viewModel.deletePost(post.id)" class="btn btn-sm">Delete</a>
    

    之后你只需将参数添加到函数中:

    viewModel.deletePost = function (id) { ... }
    

    【讨论】:

    • 太棒了! http 调用失败,但这是我可以弄清楚的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 2014-08-14
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多