2017-04-20 53 views
0

我是一個Web開發人員在一個非常小的公司,並在角控制器工作的一個網站/系統有陳述這樣的..與角JS好的設計

if ((cover.coverPK == 6 || cover.coverPK == 8 || cover.coverPK == 10 || cover.coverPK == 4) && cover.coverDetailsCompleted > 0) { etc etc 

現在這些coverPKs是SQL主ID來識別不同的保險涵蓋......當然,在前端引用這樣的ID是不好的設計,並且新加入的開發者不知道6應該是什麼意思?除非他們在SQL中進行查找。

另外,數據庫ID可以更改嗎?這將打破這個代碼。

感謝

+0

你在問什麼/迴應會在這裏幫助你? – DerMike

+0

我在問Angular是否是好的做法? – Luke

+0

這是可怕的做法,但它如何與Angular相關? –

回答

0

爲了避免這種神奇的號碼,你可以寫這樣的事情

$scope.typeOfCoverPKs = {"FirstPK": 1, "SecondPk": 2, etc.}; 
Object.freeze($scope.typeOfCoverPKs); 

隨着Object.freeze()可以確保,即反對不操作。當然,您應該使用數據庫中的表達式命名屬性FirstPK, etc.

或者你可以在後端生成一個服務,它會向你發送coverPK的當前狀態。

比你可以在你的if-Statement

if(cover.coverPK === $scope.typeOfCoverPKs.FirstPK) 
{ 
    //Do something 
} 

你的第二個問題寫,如果數據庫ID可能會改變。對此沒有明確的答案。它真的取決於。例如,如果您的ID是表格的主鍵,則它不太可能會改變。

+0

謝謝,我想我應該有常數而不是幻數。但也只有後端應該處理這些ID而不是前端。你同意嗎? – Luke

+0

不完全。如果您需要此ID來在前端做出決定,您(和前端)需要知道ID的含義。處理ID的邏輯,例如沒有重複的ID是可能的,這樣的東西,後端是負責任的。 – Torben