我在一个html页面上有一个angularjs应用程序,它几乎运行良好。但是我没有在angularjs脚本上使用常量,而是希望在有人可以从另一个页面更改值的情况下使其成为动态。这里有一些示例代码我希望是动态的:
// compute base_cost
$scope.base_cost = function(pages, delivery) {
// change this if you want to change price per page
price_per_page = 150;
// change this if you want to change the cost of a 3 day delivery
three_business_days = 100;
base_cost = pages * price_per_page;
if (delivery === "3 Business Days"){
base_cost = pages * price_per_page + three_business_days;
}
return base_cost;
};
我希望price_per_page
和three_business_days
有一个单独的页面(可能是受密码保护的),其中包含这些变量'当客户想要改变价格等时,客户可以更改常量。
最简单的方法是什么?
P.S。我目前已经在搜索它了,但我们将非常感谢您的一些指导。
由于
答案 0 :(得分:0)
答案 1 :(得分:0)
假设您希望跨会话保留这些值,您需要的不仅仅是服务:您需要某种API /数据库。
有无穷无尽的选择:node.js,ASP.NET Web API等。取决于您的体验。
您是否认为firebase可以快速启动并运行(假设您没有现有的基础设施可供依赖)?这是一个合理的实验免费等级。
还有一些不错的AngularJS支持:
https://www.firebase.com/docs/web/libraries/angular/index.html
虽然实时方面可能有点过分..
答案 2 :(得分:0)
您所描述的是工厂/服务。它是MVC应用程序中的model
。
在角度方面,工厂是单身,你不会实例化它的新副本,并且在一个区域内对其进行的更改会持续到另一个区域。当然,这只是在会话期间,您需要将模型状态存储到其他形式的存储中。
这是一个示例应用程序,它有一个控制器(显示如何使用它)和一个工厂。
angular.module('testModule', [])
.factory('BaseCost', function(){
// change this if you want to change price per page
price_per_page = 150;
// change this if you want to change the cost of a 3 day delivery
three_business_days = 100;
return {
price: function(amt){
price_per_page = amt;
},
days: function(cost){
three_business_dates = cost;
},
base: function(pages){
return pages * price_per_page;
}
};
})
.controller('ACtrl',function($scope, BaseCost){
$scope.setPrice = function(amt){
BaseCost.price(amt);
};
$scope.daysCost = function(cost){
BaseCost.days(cost);
}
$scope.baseCost = BaseCost.base(pages);
});