如何从控制器获取一些数据并在指令中使用它,这不是问题。 但是当我需要从指令获取数据并在我的控制器中使用它时,我会堆叠这种情况。
例如:
我的控制器:
function MyController($scope, $location, myDirective) {
"use strict";
// here i need use scope.importantValue and create() method from directive
}
我的指示:
.directive("myDirective", function() {
"use strict";
return {
restrict: 'A',
template: '<div></div>',
replace: true,
scope: {
data: '=',
},
link: function(scope, elm) {
scope.importantValue = "value";
function create() {
console.log("Directive works...");
}
};
})
如何在控制器中使用指令中的变量或/和方法?
答案 0 :(得分:9)
实现此目的的最简单方法是使控制器和指令从服务中获取importantValue
和create()
。
angular.module(/* Your module */).service('sharedData', function () {
return {
importantValue: "value",
create: function () {
console.log("Directive works...");
}
};
});
现在,您可以将sharedData
注入您的指令和控制器,并从任意位置访问importantValue
和create()
。