2014-01-22 80 views
0

我有我使用禁用按钮,而我做幕后工作的一些(以避免得到双重的提交)一个指令:http://jsfiddle.net/7nA3S/6/传递可变长度的参数列表AngularJS指令

我想是能够扩展它,使得指令属性可以接受具有任意长度参数列表的函数。

我知道通常的角度方法是只需将值分配给元素上的其他属性,但我想知道是否有一种很好的方法来推广这一点。我可能会做这样的事情

<button my-submit='someFunction' args="arg1, arg2, arg3, ...">No Evals<button>

,然后分手了ARGS字符串,但也许有少眉头方式?

+0

您想禁用其他按钮的参数或ID吗?或者你只是想将大量的参数传递给'$ scope.myAsyncSubmit()'? – willoller

+0

被调用的函数可能需要任何东西。不一定有很多参数,只是一个任意数字。我目前试图解决的情况是一个函数'searchOrders',它需要一个整数和一个布尔值。这个想法是指令不应该知道任何关于'myAsyncSubmit',除了它返回一个承诺,并且它需要一组给定的参数。 – peter

+0

'searchOrders'类似于'myAsyncSubmit' – peter

回答

2

也许是这样的:http://jsfiddle.net/7nA3S/7/

您可以使用ng.$parse通过您提供的参数对给定$scope的参数来评估函数。

然后,您可以从$scope.myAsyncSubmit函数中的arguments数组中获取传递给函数的参数。

+0

arg!对,谢谢! – peter

+0

不客气! :) –

+0

只是详细说明,'arguments'关键字绝对是我忘记的东西,但是它是您使用'ng。$ parse'确实节省了一天 – peter