我想知道是否可以检查内部使用什么收藏ng-repeat?
ng-repeat
例如,在我的控制器中,我有2个从服务器获取的数据数组,现在我ng-switch用来在它们之间进行切换,检查此jsbin- http: //jsbin.com/diyefevi/1/edit?html,js,output
ng-switch
问题是li我的实际应用程序中的这些视图很大,但非常相似..所以我真的想 使用1ng-repeat而不是2。
li
所以我想知道ng-repeat="book in if list==='adultBooks' adultBooks else childBooks"在Angular中是否有可能实现?
ng-repeat="book in if list==='adultBooks' adultBooks else childBooks"
谢谢!
试试这个 …
在您的 控制器中
$scope.getDataSource=function(condition){ if(condition){ return dataSource1; } return dataSource2; };
在您的 HTML
ng-repeat="book in getDataSource(/*condition*/)
MVVM模式建议将逻辑始终放在控制器中,而不要放在视图(HTML)中。如果您发现自己在视图中添加了“逻辑”,那么可能会有另一种“更好”的方法。
但是仅仅为了“ 好玩 ”,您也可以这样做:
ng-repeat="book in {true: adultBooks, false: childBooks}[list==='adultBooks']"
像这样:
<li ng-repeat="book in {true: childBooks, false:adultBooks}[list==='childBooks']">{{book.name}
这是完整的示例:
http://jsbin.com/diyefevi/5/edit?html,js,输出