我有一个代表餐厅订单的对象:
function order () {
this.customer_name = ''
this.menu = // menu object
}
扩展了一些用于业务逻辑的对象方法,例如:
order.prototype.value = function() {
var total = 0;
for (var i = 0; i < this.menu.length; i++) {
// calculate the order value
}
return total;
}
在角度控制器中,订单在提交时被推送到数组中(通过视图中按钮的 ng-click):
var ref = new Firebase('https://myfirebase.firebaseio.com');
$scope.orders = [];
angularFire(ref, $scope, 'orders');
$scope.currentOrder = orderService;
$scope.submitOrder = function() {
$scope.orders.push($scope.currentOrder);
};
一旦订单被推送到数组中,属性就会orders[0].customer_name
起作用,但方法orders[0].value()
不会。
Firebase/Angularfire 只会同步 JSON 似乎是合理的,但是有没有一种方法可以让我保持与对象相关的逻辑包含在order
对象中,即无需编写$scope.getOrderValue(orders[0])
?