我有一个控制器,我想在我的指令中使用,如何使用控制器指令我想要访问指令中的所有控制器功能?
directive.js
angular.module('App').directive('deleteButtons', function (prcDeleteFactory,$rootScope) {
'use strict';
return{
restrict:'E',
scope:{
id: '=ids',
name: '@'
},
templateUrl:'scripts/common/prcDeleteDirective.html',
link:function(scope){
scope.deleteButton = function(){
if(scope.name === 'process') {
prcDeleteFactory.deleteObj(scope.name,scope.id);
$rootScope.$broadcast('event');
} else if(scope.name === 'risk') {
prcDeleteFactory.deleteObj(scope.name,scope.id);
} else if(scope.name === 'control'){
prcDeleteFactory.deleteObj(scope.name,scope.id);
}
}
}
}
});
Ctrl.js
angular.module('App').controller('ProcessCtrl', function($scope) {
'use strict';
$scope.confirmationWin = function(){
console.log('Print value');
};
});
答案 0 :(得分:1)
您可以使用匿名函数定义控制器,也可以传递在同一模块上注册的现有控制器函数的字符串,如下所示。
return {
restrict:'E',
controller : 'ProcessCtrl'
};
当您使用isolated scope
作为指令时,要访问控制器属性和方法,您必须明确定义controller
。
如果您不想使用隔离范围,可以从指定定义对象中删除您要返回的scope
属性。默认值为{{1}这意味着您的指令将与封闭容器的控制器共享相同的范围。您可以设置false
,这意味着您的指令将获得一个新范围,该范围原型继承封闭控制器中的所有方法和属性。
有关指令范围的更多详细信息,请参阅此link。
答案 1 :(得分:0)
Scanner s = new Scanner(System.in);
String c = s.next();
System.out.print(c.length());
然后使用vm.confirmationWin访问指令模板中的控制器属性,例如