我正在尝试使用AngularJS创建各种折扣代码系统。我有一个结果函数$ scope.pricetotal,它定义了一个特定的值。我有一个定义的输入注册字符串。我也定义了一个数组。这是我正在尝试做的事情:我正在尝试将输入字符串与数组匹配,如果存在匹配,我正在尝试根据与数组中匹配字符串关联的值返回总计。但我似乎错过了一些东西。首先,这是我的意思:
return new Sink.ChainedReference<T, T>(sink) {
Set<T> seen;
@Override
public void begin(long size) {
seen = new HashSet<>();
downstream.begin(-1);
}
@Override
public void end() {
seen = null;
downstream.end();
}
@Override
public void accept(T t) {
if (!seen.contains(t)) {//first call is made here
seen.add(t);//second call is made here
downstream.accept(t);
}
}
};
这是我的HTML:
var array = {
"results": [{
"amt": 5,
"name": "12345",
"percent": 0
}, {
"amt": 0,
"name": "23456",
"percent": 5
}]
这是我的js:
<div ng-controller="MyController">
<label>Discount Code:</label>
<span style="float:right;">
<input ng-model="disc" size="10" type="text"><md-button class="md-raised md-primary" ng-click="$log.log(disc)">
Enter
</md-button>
<h3>TOTAL = {{ discprice | currency }}</h3>
</div>
我得到的唯一输出是$ 0.00,不知道为什么。我检查了我的控制台,我确实看到输入存储,所以该部分工作;所以我假设我的代码的后半部分有语法错误,我将感谢任何人的帮助。基本上,如果输入字符串与数组匹配,我需要函数((100-x)/100*$scope.pricetotal)-y,其中x和y与数组中匹配的字符串相关联。如果没有匹配,我希望返回$ scope.pricetotal本身,这是我正在玩的原始值。
答案 0 :(得分:1)
$scope.discprice = output();
看起来这只是被调用一次,那就是控制器初始化的时候。
你可以做$scope.discprice = output
(不执行该功能),在html中,绑定到<h3>TOTAL = {{ discprice() || currency }}</h3>
或者当您单击按钮时,请调用$scope.discprice()
,然后计算并设置您可以从html绑定的范围变量的价格