Javascript 活页夹控制器角度1.6
在迁移到最新角度后,我的指令有问题Javascript 活页夹控制器角度1.6,javascript,angularjs,angularjs-1.6,Javascript,Angularjs,Angularjs 1.6,在迁移到最新角度后,我的指令有问题 .directive('documentGrid', function() { return{ restrict: 'EA', scope: { documentData: '=', remove: '&', edit: '&', document
.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>
指令('documentGrid',
函数(){
返回{
限制:“EA”,
范围:{
documentData:“=”,
删除:“&”,
编辑:“&”,
documentDatasources:“=”
},
控制器:“DocumentCrtl”,
controllerAs:“vmDocument”,
//bindToController:对,
//是的,
templateUrl:“/Custom/Document/Document.cshtml”
};
});
在移动到最新版本之前,它可以在绑定控制器设置为true的情况下正常工作,但现在它不工作。因此,我删除了bindToController:true,并且我需要使用$scope来访问我的VaribileBindfromHTML指令
我阅读了有关指令的指南、帖子和教程,但没有找到任何解决方案。尝试用以下内容替换:
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
看这把小提琴:
在控制器功能中,我记录了名称。我正在使用Angular 1.6和bindToController
对每个组件
或指令
进行操作,没有遇到任何问题。您是否在控制台中收到任何错误消息?错误或问题是什么?我没有控制台错误,但如果我写入vmDocument.documentData(bindToController=true)未定义,但如果我写入$scope.documentData,则我的对象绑定来自call stackvm!=vmDocumentok。所以当我把指令放在页面上时,使用如下代码。。。documentdatasources=“vm.datasource.data”。我假设在我的控制器绑定到我的指令时,我可以通过vmDocument访问documentDatasources。documentDatasources?小提琴使用Angular 1.4.3,因此可能不是有效的测试。因此,除非我将$scope
注入我的命名控制器(此
只是一个没有传入数据的空控制器)并将范围
属性设置为与控制器定义中的bindToController
属性相同。似乎在指令定义中:1)scope
正在处理传递给指令的数据;2) bindToController
处理将scope
数据传递给控制器的过程;3) controllerAs
确定模板如何访问范围数据。