我正在使用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;
});
答案 0 :(得分:0)
查看Angular Object Table source code,它使用隔离范围。这就是指令中的函数不能访问外部函数的原因。
表数据在指令范围内可用ctrl.data
,可由object-table
内的指令或控制器编辑。