我正在研究Firebase作为我想要构建的实时工具的解决方案。假设用户界面从Firebase获取产品列表,并让客户单击列表中的项目,将其加载到编辑器中。我们还可以说,UI显示相同信息的iframe,可能以不同的方式呈现。当客户对编辑器中的数据进行更改时,我希望将iframe内容绑定到相同的资源并进行更新。
我已经在您的站点上完成了简单的示例,并且当只有一个带有名称值对的简单对象时,该概念很好地工作。但是,我不清楚如何处理$binding更复杂的对象,以便将它们加载到表单中,进行编辑,并将日期同步回Firebase。
例如,如果这是我的数据:
"products": [
{
"name": "Shiney Red Sparkles",
"path": "/product",
"images": [
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/"
],
"price": "129.99",
"currency": "dollar",
"options": [],
"description": "These things are shiney. And red!",
"vlnId": "0"
},
{
"name": "Summer Dress",
"path": "/product",
"images": [
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/"
],
"price": "129.99",
"currency": "dollar",
"options": [],
"description": "Summer dresses are nice on hot days",
"vlnId": "2"
},
{
"name": "Summer Shoes",
"path": "/product",
"images": [
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/",
"http://lorempixel.com/100/100/"
],
"price": "129.99",
"currency": "dollar",
"options": [],
"description": "Summer shoes are comfortable at the beach",
"vlnId": "3"
},我的概念验证UI使用一个中继器生成一个ng列表,该列表依次传递/加载一个具有单击对象的指令。这是我撞上一堵空白墙的地方。传递给指令的对象不再是$firebase对象了。好的,我可以抓取$firebase的孩子:
$scope.currentProduct = $scope.products.$child(product.id);通过将其传递给指令并在指令中使用ng更改,这类方法可以工作。但是,我遇到了从指令中解除子元素绑定的问题.
有帮助的是使用$firebase执行更高级操作的指南,因为我已经将它封装在服务中,因此我只需注入一个服务对象,该对象就可以为我管理防火墙连接。
在这种情况下,如果我想实时获得一个项目列表并编辑一个项目列表,那么更好的做法是使用一个列表(.fb.io/products/),将子程序绑定/解除绑定到一个指令,还是从防火墙获取列表,当我想编辑它时,重新获取它的数据,因为这样在编辑完后可能更容易解除绑定吗?
很难从与当前$firebase服务相关的与3路绑定相关的SO帖子中看出,所有的示例都是非常简单的聊天服务,它们不使用更复杂的对象,也不需要应用程序中包含的3路绑定。任何想法,在哪里可以找到更多关于这类问题的信息,将不胜感激。
发布于 2014-04-16 18:35:22
与同事一起研究这个问题,我在Firebase后端看到了奇怪的行为,这是由于将firebase对象传递给用于编辑它们的指令的方式。3方法绑定正常。
我之所以没有发布多少代码,是因为在一个或多个双向应用程序原型的早期阶段,我对一些最佳实践和经验很感兴趣。我的用例是,这些应用程序的外观和感觉可能不一样,但它们使用相同的数据,而3路绑定为我的UI提供了一些非常酷的可能性。在研究我提到的一般指南时,以及让我在Firebase.io或互联网上找到很多东西的问题,我想知道SO社区是否有任何进展。
https://stackoverflow.com/questions/23072879
复制相似问题