我正在开发一个移动单页网站,该网站使用 Breeze js、Angular JS、Web API、 Entity Framework 等。
为了优化网站,我将 Breeze 元数据包含在捆绑的 JavaScript 中,其中包含网站所需的所有其他 JavaScript。理想情况下,我希望浏览器请求的只是index.html,它应该包含应用程序运行所需的所有内容,包括捆绑和缩小的内联样式和JavaScript。
但是,正如 Breeze 元数据对于网站的运行非常重要并因此嵌入到捆绑的 JavaScript 中一样,还必须存在一个必需的复杂实体(对某些其他实体具有一些深层导航属性)使网站功能齐全。我想将该实体及其引用的所有实体也嵌入到捆绑的 JavaScript 中。我怎样才能做到这一点?
我始终可以创建一个 JSON 字符串来表示该实体及其引用的所有实体。然后将该 JSON 字符串与其余字符串一起嵌入到捆绑的 JavaScript 中。但是,如何使用嵌入在 JavaScript 中的实体 JSON 字符串轻松地将这个复杂的实体导入到 Breeze 实体系统中?或者是否有更好的解决方案可以用复杂的实体预加载 Breeze 实体系统,而无需从服务器发出对该实体的请求?
我还想避免编写服务器代码来吐出在客户端上创建实体的 JavaScript。
最佳答案
最简单的方法是在 EntityManager.createEntity 调用中使用“初始化程序”参数。
查看 http://www.breezejs.com/documentation/creating-entities和 http://www.breezejs.com/sites/all/apidocs/classes/EntityManager.html#method_createEntity
这个调用看起来是这样的。
myEntityManager.createEntity("Employee", { lastName: Smith", firstName: "John" });
因此,根据您的情况,您可以尝试:
var initialValues = JSON.parse(json);
myEntityManager.createEntity("Employee", initialValues);
根据您的用例,您可能还想设置这个新创建的实体的“entityState”。
关于javascript - Breeze js - 如何从 JSON 字符串创建实体并将其导入到 Breeze 缓存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23530234/