2015-06-19 75 views
0

我在檢查是否$location.$$url!= 'dashboard'但是,這種說法是真實的,但它仍然存在。這裏 enter image description here爲什麼如果檢查通過了?

而過,我檢查$location$$url"/dashboard"所以if聲明應被忽略,但它繼續:

// the URL is currently at /dashboard 
if ($location.$$url !== "/dashboard") 
    console.log('Custome URL found!'); 
    vs.customURL = true; 
    TagFactory.buildUrlObject($location.$$url); 

你可以看到console.log打印出以下/dashboardenter image description here

+1

你能向我們提供您的文字代碼格式? –

+1

您的縮進似乎表明您希望隨後的語句由'if'語句來管理,但您沒有任何大括號。也許這只是馬虎的格式。要清楚,Javascript!= Python – spender

+0

要更清楚你期望(不)發生什麼。張貼實際的代碼不是截圖。從我的截圖中可以看出,條件未執行(我沒有看到「Custome URL found!」控制檯日誌)。也許你的意思是在執行之後的一些代碼?也許你需要將代碼封裝在'{...}'中作爲'if'塊的一部分?更清楚。 –

回答

2

由於評論狀態,您的缺失花括號。

嘗試將其更改爲以下內容,以使語句包含在條件中。

if ($location.$$url !== "/dashboard") { 
    console.log('Custome URL found!'); 
    vs.customURL = true; 
    TagFactory.buildUrlObject($location.$$url); 
} 

沒有大括號的if語句是一個單獨的語句。例如,你可以這樣做:

if ($location.$$url !== "/dashboard") alert("not dashboard"); 

或者

if ($location.$$url !== "/dashboard"){ 
    alert("not dashboard"); 
    //Additional statements here 
} 
+1

啊謝謝你的解釋!我剛剛發現,你可以在沒有'{}'的情況下編寫JavaScript,並開始在幾個地方改變它,我必須跳過該風格的單行要求。 7分鐘! –

2

您可以在if語句後面的一行內省略大括號({})。
您的代碼應該是:

if ($location.$$url !== "/dashboard") { 
    console.log('Custome URL found!'); 
    vs.customURL = true; 
    TagFactory.buildUrlObject($location.$$url); 
} 

而且,它一般不認爲是最佳做法,以ommit正是因爲這種情況大括號。

+0

謝謝!是的,現在只會用於1行語句,試圖優化到處,但要堅持可讀性... –

1

我覺得@spender已經給出了答案,在大括號丟失:

if ($location.$$url !== "/dashboard") { 
    console.log('Custome URL found!'); 
    vs.customURL = true; 
    TagFactory.buildUrlObject($location.$$url); 
}