我有一个指令,这里是代码:
.directive('map', function() {
return {
restrict: 'E',
replace: true,
template: '<div></div>',
link: function($scope, element, attrs) {
var center = new google.maps.LatLng(50.1, 14.4);
$scope.map_options = {
zoom: 14,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// create map
var map = new google.maps.Map(document.getElementById(attrs.id), $scope.map_options);
var dirService= new google.maps.DirectionsService();
var dirRenderer= new google.maps.DirectionsRenderer()
var showDirections = function(dirResult, dirStatus) {
if (dirStatus != google.maps.DirectionsStatus.OK) {
alert('Directions failed: ' + dirStatus);
return;
}
// Show directions
dirRenderer.setMap(map);
//$scope.dirRenderer.setPanel(Demo.dirContainer);
dirRenderer.setDirections(dirResult);
};
// Watch
var updateMap = …Run Code Online (Sandbox Code Playgroud) 似乎网上存在类似问题的一些问题,但没有解决方案适合我.
我有一个指令,让我们说包括这样的函数(在指令中):
link: function(scope, element, attrs) {
scope.myfunction = function (){
console.log('function run');
};
}
Run Code Online (Sandbox Code Playgroud)
女巫我想让它从一个控制器运行(调用它),像这样简单:
$scope.myFunction();
Run Code Online (Sandbox Code Playgroud)
所以我可以从指令代码之外的页面的一部分调用它,让我们这样说:
<button ng-click="myFunction()">Run</button>
Run Code Online (Sandbox Code Playgroud)
可能吗?