我在Angular js中放入了两个模型
// full device list
$scope.devices = [{id:1, on:true}, {id:2, on:false}, {id:3, on:true}];
// devices with on == true
$scope.devicesOn = $scope.devices.filter(function(t){return t.on==true});
在页面中:
<span>the following {{ devicesOn.length }} of {{ devices.length }} are on</span>
<ul>
<li ng-repeat='device in devicesOn'>{{device.id}}</li>
</ul>
所以模型devices
是动态的。但是devicesOn
不是动态的,因为它不是惰性评估。
我知道你可以写一些类似$scope.countOnDevices = function(){return ...}
的东西,但这并不理想。还有更优雅的方法来解决这个问题吗?
这就像从RDBMS 中的现有创建一个view
(应用过滤器)。where
table