我使用指令(注意:使用jade模板引擎):
file-upload.uploadContainer(complete_function="set_value()")
指令本身:
app.directive('fileUpload', function() {
return {
restrict: 'E',
scope: {
complete_function: "&completeFunction"
},
//the rest of the directive
该指令使用的是角度服务的UploadService。 上传完成后,我需要在控制器中调用complete_function。
uploadService.onUploadComplete(function(event) {
alert("OK");
console.log("upload successfully completed");
url = event.target.response;
console.log(url);
$scope.complete_function(url);
});
在上传服务中,我可以看到url
(从服务器返回)有效。然后我继续调用$scope.complete_function(url)
看起来像这样:
$scope.set_value = function(url) {
console.log("called");
console.log(url);
我知道这个函数被调用因为我可以看到日志“被调用”(我已经调试过),所以整个链就像一个魅力。但是,出于某种原因,url
中的undefined
为set_value()
...为什么???
它与孤立的范围等有关吗?
怎么做正确?我试着放complete_function="set_value(**url**)
,但这也无济于事。
答案 0 :(得分:1)
我在这里找到了解决方案: http://blog-it.hypoport.de/2013/11/06/passing-functions-to-angularjs-directives/
基本上需要提供变量图...