【发布时间】:2014-10-14 21:54:26
【问题描述】:
在我的网络应用中,在搜索结果中,每个项目都可以根据项目的类型具有不同的外观。为了实现这一点,我正在考虑在 json 响应中包含该特定项目的数据占位符的布局。如何将范围数据绑定到 json 响应模板中的占位符?
例如。 我的搜索结果看起来像:
<li ng-repeat="item in items">
<div ng-bind-html="item.template"></div>
</li>
JSON 响应如下所示:
[{
"template_name":"One",
"template":"<div ng-repeat='subitem in item.subitems'>{{subitem.name}}</div>",
"subitems":[{name:"John"},{name:"Jane"}]
},
{
"template_name":"Two",
"template":"<div ng-repeat='subitem in item.subitems'>{{subitem.name}}</div>",
"subitems":[{name:"John"},{name:"Jane"}]
}
]
如您所见,我需要将 json 响应中的占位符与范围数据绑定。有什么办法吗?如果不是,你建议我应该如何解决这种情况?
谢谢!
【问题讨论】:
-
通过模板缓存为类型添加模板,那么您的解决方案只需要知道类型 X 映射到模板 Y。您的 JSON data 响应不需要参与其中。
-
我的模板需要在服务器中动态构建。这就是为什么我不能选择本地存储的模板。
-
它们需要在获取数据时构建?这没有任何意义。您可以根据需要动态构建它们,然后将它们添加到模板缓存中 - 例如见stackoverflow.com/questions/12346690/…
-
好吧。是的。我知道这听起来很荒谬。但情况就是这样。它是一个搜索结果页面。根据结果项的类型,每个结果项可能看起来不同。因此,在我阅读单个项目之前,无法知道要使用哪个模板。这就是为什么我决定用 json 响应发送模板数据。
标签: javascript json angularjs layout