2014-03-28 60 views
0

我已經在Angular的各種服務中使用了很多$ http模塊,但是想要將它與Mulesofts RAML分析器集成在一起。這將使我不必更新角度的某些部分以符合RAML規範。Angular.js與瀏覽器內RAML語法分析器的集成

有沒有人這樣做?什麼是必需的步驟?

如果這是不可能的,我猜測它只是使用RAM資源中描述的REST資源的$ resource模塊沒有太多的工作。

回答

1

將任何庫集成到AngularJS中是完全可能的。

在你的情況下,它甚至更簡單 - RAML模塊將使用$q.when來承擔Angular將使用的承諾,該承諾將免費爲您處理整個摘要循環集成問題。

的錯構瘤解析器使用,如:

//example from the documentation 
RAML.Parser.loadFile('http://localhost:9001/myAPI.raml').then(function(data) { 
    console.log(data) 
}, function(error) { 
    console.log('Error parsing: ' + error); 
}); 

所有你需要做的是很好地發揮與角度的包裝與$q.when這需要照顧融入消化週期:

$.when(RAML.Parser.loadFile('http://localhost:9001/myAPI.raml')).then(function(data) { 
    $scope.someProp = data; 
}).catch(function(error) { 
    throw error; //Angular promises log when you use throw instead of $q.reject 
}); 

當然,對於乾淨的Angular代碼 - 您應該將其提取到服務中。

關鍵的是,無論是腎錯構瘤模塊和角度使用承諾/ A +投訴實施的承諾,因此它是極其簡單的結合起來。 RAML使用Q,Angular使用名爲$ q的觸摸版本。

+0

謝謝,但目前在解析器中似乎沒有任何內容。我會看看api-designer,看看它們是如何生成代碼的(從raml生成API測試的代碼) – Nikos