【发布时间】:2013-12-09 01:32:45
【问题描述】:
app.directive('copyPost', ['$window', '$filter', 'ZeroClipboardPath', function ($window, $filter, ZeroClipboardPath) {
return {
scope: {
postFn: '&',
},
restrict: 'A',
link: function (scope, element, attrs) {
ZeroClipboardPath = ZeroClipboardPath || '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.1.7/ZeroClipboard.min.js';
var clip = new ZeroClipboard( angular.element(element), {
moviePath: ZeroClipboardPath,
trustedDomains: ['*'],
allowScriptAccess: "always"
});
clip.on('mousedown', function(client) {
console.log('shit works');
scope.postFn().then(function(data){
client.setText(data.data[0].external_url);
});
});
}
}
}]);
postFn 得到下面的函数,它返回一个 HTTP 承诺(在没有插件的情况下测试,并且从函数返回正确的值到
jobsServ.shareObject = function(object, identifier, data){
if(object == 'job')
return $http.post(utils.getBaseUrl() + '/jobs/' + identifier + '/share', data, utils.getConfig());
else if(object == 'company')
return $http.post(utils.getBaseUrl() + '/companies/' + identifier + '/share', data, utils.getConfig());
});
ZeroCLipboard 脚本:
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.1.7/ZeroClipboard.min.js"></script>
问题:没有一个 ZeroCLipboard 事件没有触发。
已经尝试过以下操作: 将优先级设置为 0 以上(最高 100), 一个没有广告的隐身窗口(添加块等), 使用脚本和 swf 的本地实例,以及以下设置:
尝试在元素上使用 angular.element() 和 $(),甚至尝试使用带有显式 id 的 jquery css 选择器,但现在幸运了。 有什么想法吗?
【问题讨论】:
标签: angularjs angularjs-directive zeroclipboard