2017-07-07 75 views
3
<button type="button" class="btn-submit upload smooth-hover" data-prod-idx="{{index}}" data-prod-id="{{prod.ProductId}}" 
ng-click="vm.onUpload($event, index, prod.ProductId)" 
ngf-select="vm.uploadAttachments($event, $files, $invalidFiles)" multiple accept="image/*,.pdf,*.doc,*.docx" ngf-capture="'camera'" 
ngf-max-size="5MB" 
ng-disabled="prod.Product_Status === 'Approved||Not Approved'"> 
Upload Documents</button> 
  1. 我取決於我想要禁用按鈕不同的產品狀態條件。我在ng-disable中遇到問題或條件。它不禁用按鈕,如果我給條件。

2.如果點擊了被禁用按鈕應該彈出警告信息(不使用jQuery) 每個條件有不同的錯誤味精(以ng禁用條件)我想給多個條件在NG-禁用

感謝您的幫助!

回答

3

你的條件編碼是錯誤的

ng-disabled="prod.Product_Status === 'Approved'|| prod.Product_Status === 'Not Approved'" 

在第二種情況下,你可以刪除NG-禁用,並在點擊功能,你可以用這種方法制成:

function onUpload($event, $files, prod.ProductId){ 
    if(prod.Product_Status === 'Approved'|| prod.Product_Status === 'Not Approved'){ 
     alert("Message") 
     return; 
    } 
    // your code 
} 
+0

謝謝@Carlos佛朗哥。 – Mohit

+0

你對第2部分有什麼想法嗎? – Mohit

+0

如果這段代碼是我的,我不會使用ng-disabled。我會在點擊功能中驗證條件。 @Mohit –

1

它應該是:

ng-disabled="prod.Product_Status === 'Approved' || prod.Product_Status === 'Not Approved'" 

||裏面的字符串就是讓您的字符串,而不是人的一部分ogical運營商。

+0

謝謝艾米....第2部分的任何想法? – Mohit

0

你有錯的表達,它基本上與Approved||Not Approved作爲比較字符串檢查。更好的是,你可以使用indexOf有效的狀態數組來使你的實現更加緊湊。

ng-disabled="prod.Product_Status === isDisabled(prod.Product_Status)" 

代碼

//later you can add more status here in this array. 
var validStatus = ['Approved', 'Not Approved']; 
$scope.isDisabled = function isDisabled(product_Status){ 
    return validStatus.indexOf(product_Status) > -1 
}