通过angularjs将参数传递给指令中的函数调用
我有一个自定义指令。在我的html中,我写了以下内容:通过angularjs将参数传递给指令中的函数调用,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个自定义指令。在我的html中,我写了以下内容: <uploader action="/rest/file/create_from_form.json" success="writeFid()"></uploader> 在我的“控制器”中,我有: $scope.writeFid = function (data) { console.log("Into writeFid"); console.log(data); //this i
<uploader action="/rest/file/create_from_form.json" success="writeFid()"></uploader>
在我的“控制器”中,我有:
$scope.writeFid = function (data) {
console.log("Into writeFid");
console.log(data); //this is my problem: it is always undefined.
}
我可以看到(通过console.log()消息)调用了“success”函数,但没有传递“data”
我试着用
<uploader action="/rest/file/create_from_form.json" success="writeFid(data)"></uploader>
但它不起作用
那么:如何传递某种类型的$scope.data
谢谢。我不确定您的指令是否使用隔离作用域,因此我将介绍这两种情况: 没有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
具有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
无论作用域的类型如何,您的标记必须如下所示:
<uploader success="writeFid(data)" ...></uploader>
下面是一个演示这两种方法的示例。我不确定您的指令是否使用隔离作用域,因此我将介绍这两种情况: 没有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
具有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
无论作用域的类型如何,您的标记必须如下所示:
<uploader success="writeFid(data)" ...></uploader>
下面是一个演示这两种方法的示例。我不确定您的指令是否使用隔离作用域,因此我将介绍这两种情况: 没有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
具有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
无论作用域的类型如何,您的标记必须如下所示:
<uploader success="writeFid(data)" ...></uploader>
下面是一个演示这两种方法的示例。我不确定您的指令是否使用隔离作用域,因此我将介绍这两种情况: 没有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
具有隔离作用域:
scope.$eval(attrs.success, { data: 'Some value from foo' });
scope: { success: '&' },
...
scope.success({ data: 'Some value from bar' });
无论作用域的类型如何,您的标记必须如下所示:
<uploader success="writeFid(data)" ...></uploader>
这里有一个演示这两种方法的示例。您可以在uploader指令中使用带有双向绑定的隔离作用域,以在一定程度上实现您所追求的目标 上传指令
...
scope: {
data: '=',
success: '&'
}
...
示例父控制器
标记
...
<uploader data="dataAttribInParent" success="writeFid()">
...
。。。
...
下面是一个需要详细说明的例子:
您可以在uploader指令中使用带有双向绑定的隔离作用域来实现您所追求的目标 上传指令
...
scope: {
data: '=',
success: '&'
}
...
示例父控制器
标记
...
<uploader data="dataAttribInParent" success="writeFid()">
...
。。。
...
下面是一个需要详细说明的例子:
您可以在uploader指令中使用带有双向绑定的隔离作用域来实现您所追求的目标 上传指令
...
scope: {
data: '=',
success: '&'
}
...
示例父控制器
标记
...
<uploader data="dataAttribInParent" success="writeFid()">
...
。。。
...
下面是一个需要详细说明的例子:
您可以在uploader指令中使用带有双向绑定的隔离作用域来实现您所追求的目标 上传指令
...
scope: {
data: '=',
success: '&'
}
...
示例父控制器
标记
...
<uploader data="dataAttribInParent" success="writeFid()">
...
。。。
...
下面是一个需要详细说明的例子:
您的指令是否使用隔离范围?您的指令是否使用隔离范围?您的指令是否使用隔离范围?您的指令是否使用隔离范围?您的指令是否使用隔离范围?您的指令是否可能重复