首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ng-Dialog中通过按钮单击传递一个值

在ng-Dialog中通过按钮单击传递一个值
EN

Stack Overflow用户
提问于 2017-02-09 19:38:12
回答 2查看 671关注 0票数 0

我正在尝试传递来自ng-Dialog的值。

HTML:

代码语言:javascript
复制
 <div class="col-md-12" style="text-align:center" ng-controller="getReservationController">
            <label ng-show="!data.length" >No reservations found!</label>
            <div  class="widget widget-table action-table" ng-repeat="reservation in data">
                <div ng-show="data.length" class="widget-content table-container"  style="overflow:auto">

                    <table  ng-table="reservationsList" class="table table-striped table-bordered" wt-responsive-table style="font-size: smaller;text-align:center; display:block;overflow-x:scroll">
                        <tr >
                            <td data-title="'#'">{{ $index+1 }}</td>
                            <td data-title="'Name'" ui-sref="employee.edit({id: reservation.employee.id})" sortable="'employee.name'" filter="{ 'employee.name': 'text' }" style="width:230px">
                                <a ui-sref="employee.edit({id: employee.id})" tooltip="View or Edit  employee" tooltip-trigger tooltip-animation="false" tooltip-placement="bottom" style="color:#23527c">{{reservation.employee.firstName +""+reservation.employee.lastName}}</a>
                            </td>
<td data-title="'Reject'">
                                <a tooltip="Reject employee" tooltip-trigger tooltip-animation="false" tooltip-placement="bottom"  data-placement="left" data-toggle="tooltip" data-original-title="reject" ng-show="data.currentUser==reservation.account.programManager.id || data.role == 'HR'" ng-click="rejectEmployee"><svg class="glyph stroked cancel"><use xlink:href="#stroked-cancel" /></svg></a>
                            </td>
                        </tr>
                    </table>
                </div>
                <script type="text/ng-template" id="templateId">
                    <div class="media-body act-media-body">
                        <h5 class="success" style="color:red">Are you sure you want to reject this reservation?</h5>
                        If yes, please specify reason : <textarea type="text" ng-model="reservation.account.name" placeholder="test" style="height:100px;resize: none;"/>
                        <button  class="ngdialog-button" ng-click="rejectEmployeeButton(reservation.employee.id)">Confirm</button>
                    </div>
                </script>
            </div>
        </div>

单击表中的Reject按钮,对话框就会出现。

控制器:

代码语言:javascript
复制
myApp.controller('getReservationController', ['$scope', 'reservationServices', 'dataTable', '$rootScope', '$location', '$filter', 'ngDialog', '$window', function ($scope, reservationServices, dataTable, $rootScope, $location, $filter, ngDialog, $window) {
    reservationServices.getReservations().then(function (result) {
        $scope.data = result.data;
        $scope.rejectEmployee = function () {
             ngDialog.open({
                template: 'templateId',
                closeByDocument: true,
                closeByEscape: true,
                preCloseCallback: function (value) {

                },
                scope: $scope
            });

        }
        $scope.rejectEmployeeButton = function (id) {
            reservationServices.rejectEmployee(id).then(function (result) { 
                    ngDialog.openConfirm({
                        template:
                            '<p>Rejected the employee!</p>',
                        plain: true,
                        className: 'ngdialog-theme-default'
                    })
                    $location.path("/talents");
                    });
        }

我注意到,单击按钮时Id不会传递:rejectEmployeeButton(reservation.employee.id)

在发布对话框中文本区域内的数据时,也会遇到类似的问题。但是,一旦我找到了一个解决方案,在按钮单击时传递该值,我就可以解决这个问题。

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2017-02-09 19:40:37

更好的方法是传递对象并访问控制器内部的id,

代码语言:javascript
复制
ng-click="rejectEmployeeButton(reservation)"

控制器:

代码语言:javascript
复制
$scope.rejectEmployeeButton = function (reserObj) {
   var id = reserObj.employee.id;
}
票数 0
EN

Stack Overflow用户

发布于 2017-02-09 20:11:51

您可以为OpenDialoge定义控制器,并在该控制器函数中编写所有代码。

代码语言:javascript
复制
 ngDialog.open({
            template: 'templateId',
            closeByDocument: true,
            closeByEscape: true,
            controller:function()
            {
                this.rejectEmployeeButton = function (id) {

                    rejectEmployeeButton(id);

                };

            },

     rejectEmployeeButton=function()
        { 
        // Do somthing  open dialog
        }

你可以试着这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42135732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档