CAll to function在指令内不起作用?

时间:2016-03-27 10:11:48

标签: angularjs

我正在使用Angular Object Table(https://github.com/ekokotov/object-table)列出我的web api服务的一些基本信息。效果很好。

在我的几个输出中,我添加了一个删除按钮,因此用户可以删除该条目。 我的控制器中有一个删除功能。测试过了。 我似乎无法开始工作,在指令中有按钮。

我的代码如下所示:

<table object-table
                                   from-url="http://myapi.com"
                                   data="myVar"
                                   display="100"
                                   headers="Header 1, Header 2"
                                   fields="Field1, field2"
                                   sorting="true">
                                <thead>
                                <tr>
                                    <th>Header 1</th>
                                    <th>Header 2</th>
                    <td>Actions</td>
                                </tr>
                                </thead>
                                <tbody>
                                <tr>
                                    <td>{{::item.field2}}</td>
                                    <td>{{::item.field2}}</td>
                                    <td><button ng-click="ctrl.delete(item.id)">Delete</button></td>
                                </tr>
                                </tbody>
                            </table>

删除功能,永远不会被调用。 但是,如果我将excat相同的按钮放在<table object-table>之外,就像这样;

<button ng-click="ctrl.delete('hardcodedId')">Delete</button>
<table object-table>...</table>

然后它有效。因此,指令中的内容会覆盖我的ctrl = vm,ui-router使用,我在想。

我的控制器看起来像这样:

myApp.controller('myController', function myController($scope, $http, $window) {
        var vm = this;

        vm.delete = function (id) {
        }

        return vm;
    });

1 个答案:

答案 0 :(得分:0)

查看Angular Object Table source code,它使用隔离范围。这就是指令中的函数不能访问外部函数的原因。

表数据在指令范围内可用ctrl.data,可由object-table内的指令或控制器编辑。

相关问题