我在迁移到最后一个角度后与指示有问题。
.directive('documentGrid',
function() {
return{
restrict: 'EA',
scope: {
documentData: '=',
remove: '&',
edit: '&',
documentDatasources: '='
},
controller: 'DocumentCrtl',
controllerAs: 'vmDocument',
//bindToController: true,
//transclude: true,
templateUrl: '/Custom/Document/document.cshtml'
};
});
<div class="box" document-grid document-data="widget"
document-datasources="vm.datasource.data"
remove="vm.remove(item)"
edit="vm.openSettings(item,datasources)">
</div>
移至最后版本之前,它可以将绑定控制器设置为true可以正常工作,但现在它不起作用。因此,我删除了bindtocontroller:true,我需要使用$范围访问我的varibile bind bind bint
我阅读了有关指令的指南,帖子和教程,但我找不到任何解决方案。
尝试用以下方式替换:
directive('documentGrid',
function() {
return{
restrict: 'EA',
bindToController: {
documentData: '=',
remove: '&',
edit: '&',
documentDatasources: '='
},
controller: 'DocumentCrtl',
controllerAs: 'vmDocument',
scope: {},
//transclude: true,
templateUrl: '/Custom/Document/document.cshtml'
};
});
请注意,我更改了bindToController
和scope
。
然后在您的控制器中您必须绑定this
,例如:var vm = this;
在您的控制器的第一行中,最好是。
最后,您将能够在控制器中访问您的数据:
vm.documentData
请参阅此小提琴:https://jsfiddle.net/2n5skwqj/794/在控制器函数中我记录名称。