使用带有数组的forEach来查找字符串并返回一个函数

时间:2016-01-02 04:21:34

标签: arrays angularjs for-loop

我正在尝试使用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本身,这是我正在玩的原始值。

1 个答案:

答案 0 :(得分:1)

$scope.discprice = output();

看起来这只是被调用一次,那就是控制器初始化的时候。

你可以做$scope.discprice = output(不执行该功能),在html中,绑定到<h3>TOTAL = {{ discprice() || currency }}</h3>

或者当您单击按钮时,请调用$scope.discprice(),然后计算并设置您可以从html绑定的范围变量的价格