我无法理解从服务到自定义指令的推荐通信方式是什么。自定义指令是一个交互式 svg 图形,它在用户交互时调用注入服务的方法来检索新数据。这应该以异步方式发生。我在这里和那里读到,事件通常不是在 angularjs 中进行交流的推荐方式。我应该使用回调函数吗?或者?
谢谢哥们
马丁
我无法理解从服务到自定义指令的推荐通信方式是什么。自定义指令是一个交互式 svg 图形,它在用户交互时调用注入服务的方法来检索新数据。这应该以异步方式发生。我在这里和那里读到,事件通常不是在 angularjs 中进行交流的推荐方式。我应该使用回调函数吗?或者?
谢谢哥们
马丁
您将服务注入指令,然后指令调用服务上的方法,将参数值作为参数传递。
要让指令知道服务方法已异步完成,请让服务方法返回一个承诺对象。
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
myApp.factory('myService', function ($q, $timeout) {
return {
doSomething: function (msg) {
var d = $q.defer();
$timeout(function () {
d.resolve("resolved: " + msg);
}, 1500);
return d.promise;
}
}
});
function MyCtrl($scope, myService) {
$scope.callService = function () {
$scope.sent = new Date();
$scope.msg = "";
$scope.timestamp = "";
myService.doSomething("some value")
.then(function (data) {
$scope.timestamp = new Date();
$scope.msg = data;
});
}
}