在点击时调用指令

时间:2015-07-19 21:42:45

标签: javascript angularjs

首先,我想要为我的英语道歉,但我会尝试尽可能具体。

其次可能解决这个问题很简单,但我很困难,我的大脑不想要合作,啤酒也不会帮助..至少这次

所以我用角度写应用程序,我用ng重复显示一些数据表,在每一行我需要有按钮,如编辑,删除等,对于每个按钮,我有不同的模态定义在指令中。

并且存在一个问题,因为当我加载视图时,ng-repeat为每个指针添加模板但是当我在加载视图时单击行中的特定按钮而不是所有行时我想调用指令

    <h4 class="modal-title">Name for: {{name}}</h4>

<add-button></add-button>

<table class="table table-hover">
    <thead>
    <tr>
        <input type="search" placeholder="search" ng-model="findThisData">
        <td>Id</td>
        <td>Name</td>
    </tr>
    </thead>
    <tr ng-repeat="data in DataOne | filter:findDataOne | orderBy: 'id'">

        <td>{{data.id}}</td>

        <td ng-model="data.name">{{data.name}}</td>

        <td>
       **strong text**

            <edit-input></edit-input>
            <delete-button></delete-button>
        </td>
    </tr>
</table>

EditButton partial:

    <button class="btn btn-success" type="button" data-toggle="modal" data-target=".bs"
        ng-click="modalContent(data.id, $index)" >Edytuj{{data.name}}
</button>
<div  class="modal fade bs" role="dialog" id="yolo">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">

                <h4 class="modal-title">Edycja{{data.version}}</h4>
            </div>
            <div class="modal-body">
                <input type="text" ng-model="input.name"/>
            </div>
            <div class="modal-footer">
                <button class="btn btn-danger" ng-click="save(input.name)" data-dismiss="modal">Zapisz</button>
                <button type="button" class="btn btn-primary" data-dismiss="modal">Zamknij</button>
            </div>
        </div>
    </div>
</div>

指令:

    define(['angular'], function () {
    'use strict';
    var dataDirectives = angular.module('dataModule.dataDirectives', []);

    dataDirectives.directive('dataName', function(){
        return{
            restrict: 'AE',
            templateUrl: '/front/app/views/users/dataName.html'
        }
    });


    dataDirectives.directive('editInput', function (){
        return{
            restrict: 'AE',
            templateUrl: '/front/app/views/partials/editInput.html'

        }
    });

    dataDirectives.directive('modalName', function () {
        return{
            restrict: 'AE',
            templateUrl: '/front/app/views/partials/modalname.html'
        }
    });
    dataDirectives.directive('deleteButton', function () {
        return{
            restrict: 'AE',
            templateUrl: '/front/app/views/partials/deleteButton.html'
        }
    });
   dataDirectives.directive('addButton', function (){
        return {
            restrict: 'AE',
            templateUrl: '/front/app/views/partials/addButton.html'
        }
    });
});

所以我的目标是在表格的每一行都有一个编辑和删除按钮,当我点击这个按钮时,我想用模态模板调用动作,但仅限于行中的特定数据

1 个答案:

答案 0 :(得分:0)

您可以为指令添加输入变量,并使用它们:

<edit-input rowId="data.id"></edit-input>
<delete-button rowId="data.id"></delete-button>

您可以通过在指令中使用隔离范围来实现此目的。以下是一些有用的链接,解释了如何做到这一点: