2014-01-08 17 views
0
var p1 = breeze.Predicate.create("Status", "==", 3); 
var p2 = breeze.Predicate.create("Client/Status", "==", 1); 
var p = breeze.Predicate.and([p1, p2]); 

在上面的代碼謂詞,最終謂詞p被轉換爲。BreezeJS /查詢上展開字段問題

當在擴展實體的字段(「客戶端/狀態」,請參閱謂詞p2)上創建謂詞時,爲什麼整數1被視爲字符串('1')。這導致http請求作爲錯誤的請求失敗。

在第一級字段(「狀態」,請參閱謂詞p1)上正確構造同一種謂詞。

注意:當我去Fiddler時,此請求正常工作,刪除值1附近的單引號並執行。

回答

1

我認爲問題在於你需要使用點'。'分隔路徑的各個部分而不是'/'。即

var p2 = breeze.Predicate.create("Client.Status", "==", 1); 

您看到解釋爲字符串「客戶端/狀態」的原因是,微風默認值轉換爲字符串時,它是無法確定該領域的實際數據類型。它通過瀏覽路徑並通過元數據確定每個段的數據類型來確定數據類型。

希望這會有所幫助。

+0

非常感謝Jay。它像魔術一樣工作。 – Vijey