2014-03-28 32 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