【问题标题】:get result of function as displayed in DOM with angular获取在 DOM 中以角度显示的函数结果
【发布时间】:2014-06-01 13:07:34
【问题描述】:

看看这个笨蛋http://plnkr.co/edit/iOqhKPMKbwkeYIhf2m2j?p=preview

有没有办法从 getSum() 获取结果值,如 DOM 中显示的那样,带有 angular 以用于另一个函数?我需要使用jquery吗?

编辑:新插件

【问题讨论】:

    标签: jquery angularjs


    【解决方案1】:

    你可以在你的displaySum函数中调用getSum()

    $scope.displaySum = function(){
       //code to get result from getSum
       var sum = $scope.getSum();
       //do something with sum here
    };
    

    可以getSum() 的值分配给您范围内的变量

    $scope.sum = $scope.getSum();
    

    并将您的html绑定到$scope.sum而不是$scope.getSum(),然后从$scope.displaySum中访问$scope.sum,但是如果您的权重发生变化,则包含总和的跨度将不会自动更新。

    查看此plunker 以了解它的工作原理。

    另外,如果您的权重是可编辑的,您需要将它们存储为一个对象数组,而不仅仅是一个整数数组。否则,您的 ng-repeat 中的绑定将无法正确更新。

    更新

    概括您的getSum 函数以将line 作为参数。然后在你的 ng-repeat 中你可以这样称呼它:

    getSum(line)
    

    同样,您可以像这样拨打displaySum

    displaySum(lines[0])
    

    实际上你甚至不需要displaySum。像这样显示总和

    <div>Sum value from line1:{{getSum(lines[0])}}</div>
    <div>Sum value from line2:{{getSum(lines[1])}}</div>
    <div>Sum value from line3:{{getSum(lines[2])}}</div>
    

    或者更好

    <div ng-repeat="line in lines">
        Sum value from line{{$index+1}}:{{getSum(line)}}
    </div>
    

    New Plunker

    【讨论】:

    • 谢谢,但这对我没有帮助。在真正的应用程序中,权重和 tara 跨度是 contenteditable div...
    • 是的,我不建议您这样做。查看我添加到答案中的 plunker。点击 sum 输出 454 到控制台。
    • 也许有什么我不明白的,但这不会只是重新运行函数吗?假设我在 DOM 中多次调用该函数..然后我想从其中一次运行中获取值...新的 plunker 可以更好地解释它....
    • 是的,它将重新运行该功能。那是问题吗?如果任何权重发生变化,您的视图也将重新运行该函数,因此当您在控制器中运行它时获得的结果将与视图显示的结果相同。
    【解决方案2】:

    不,这里不需要 jQuery。

    实际上,您可以在控制器中的任何位置访问getSum(),例如。 g.:

    var test = $scope.getSum();
    console.log(test);
    

    【讨论】:

    • 也许我的问题不清楚(我对此很陌生)..我不想访问该函数...我想要该函数在使用时返回的值DOM。在 plunker 我只想要值 454
    • @user3320468 你试过console.log这个代码吗? test 实际上具有您正在寻找的价值。
    • 是的,ng-click="test"是为了运行console.log,但是还是找不到值,只有函数
    • @user3320468 你也在做同样的事情吗? console.log( $scope.getSum() );
    • 看看我的新plunker,我希望这能更好地解释我想要什么
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    相关资源
    最近更新 更多