走出我的.net stomping地面,似乎无法弄清楚你是否会在.net中使用DataTemplateSelector,而是用于离子驱动的html5和angularjs项目。有人可以指出我正确的方向吗?
例如,我知道我可以进入并使用类似于ng-repeat
类似的快速角钩来使用相当于ItemsControl的东西;
<ion-list>
<ion-item ng-repeat="blah in something | orderBy:'whatever'" href="#/my/crap/{{blah.blah}}">
<!-- stuff -->
</ion-item>
</ion-list>
当然,我可以为每个生成的孩子提供一个模板,但是我需要在需要时将其翻出来查看不同的部分。
我用ng-switch
搞砸了但是我无法得到我正在拍摄的东西而且如果它现有的功能我不想重新发明轮子。我只是没找到。
基本意图。在重复列表中提供多个项目模板,以根据某些条件显示不同的项目。任何见解?感谢
答案 0 :(得分:2)
有许多方法可以达到相当于DataTemplateSelector
的效果 - 取决于您的需求和对优雅&#34;的观点。可能最近的一个是ng-include
,但对于简单的情况,您也可以使用ng-if
和ng-switch
。
ng-include
<div ng-repeat="item in items">
<div ng-include="itemDataTemplateSelector(item)"></div>
</div>
$scope.itemDataTemplateSelector = function(item){
if (item.type === "foo" && item.something.else) return "/path/to/foo/template.html";
...
}
ng-if
s <div ng-repeat="item in items">
<div ng-if="item.type === 'foo'">
... foo template
</div>
<div ng-if="item.type === 'bar'">
... bar template
</div>
</div>
ng-switch
<div ng-repeat="item in items" ng-switch on="item.type">
<div ng-switch-when="foo">
... foo template
</div>
<div ng-switch-when="bar">
... bar template
</div>
</div>
这里是plunker