2014-01-22 111 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