2016-02-16 67 views
0

邏輯:ng-if表單標籤內嗎?

if(condition) 
    Use first `<form ng-submit="action1">` 
else 
    Use second `<form ng-submit="action2">` 

在PHP的方法邏輯:

<?php 

if(condition){ 
    echo "<form action='action1.php' >"; 
} 
else{ 
    echo "<form action='action2.php' >"; 
} 
echo "....many many many inputs here..."; 
echo "</form>"; 

?> 

我試圖寫的是這樣的:(我使用AngularJs)

<form ng-submit="action1" ng-if="condition1"> ---> First condition 
<form ng-submit="action2" ng-if="condition2"> ---> Second condition if first condition fails 
....Many many many inputs 
</form> 

但是我當然可以簡單地寫下這樣的內容:(會是一種痛苦屁股)

<div ng-if="condition1"> ---> First condition 
    <form ng-submit="action1" > 
    ....Many many many inputs 
    </form> 
</div> 

<div ng-if="condition2"> ---> Second condition if first condition fails 
    <form ng-submit="action2" > 
    ....Same inputs as in the first div 
    </form> 
</div> 

我的問題是,是否有可能使用ng-if(我也試過ng-disabled)一<form>標籤裏面?

我試圖避免的重新編碼所有我inputsform裏面,如果我會讓唯一的變化是開放<form>標籤。

我搜索了一個答案,沒有發現任何東西,唯一剩下的就是確認並詢問。

+0

你可能可以做類似 '

'......不確定語法。 – abimelex

+0

你可以在ng-submit中使用表達式。嘗試'ng-submit =「{condition1?action1():condition2?action2():action3()}' – zcui93

+0

第二種情況應該只是'!condition1' – FuzzyTree

回答

1

如果差異只是您要提交的函數,您可以在函數本身中進行測試。

<form ng-submit="mySubmit" > 
    ...Many many many inputs 
</form> 

控制器

$scope.mySubmit = function(){ 
    if($scope.condition1){ 
     // call the function 1 
     action1(); 
    }else{ 
     // call the function 2 
     action2(); 
    } 
} 
+0

由於某些原因,只要有可能,我希望我的「條件」不要放在我的控制器內,謝謝你的想法,這很有道理。 –

0

好吧經過長期試,zcui93abimelex代碼似乎工作{}(大括號):

因此,代碼將是:

ng-submit="condition1 ? action1() : condition2 ? action2() : action3()" 

請確認它是否也適用於您。但它對我真的很有用。