通过ng-init + ng-repeat

时间:2016-04-24 02:36:43

标签: javascript angularjs controller

我无法弄清楚为什么我试图通过 ng-repeat 块从控制器获取的变量值不正确。

情况:我正在尝试使用一些Integer值调用函数 getCurrentArray()。我将它传递给singlePost.ID变量(由ng-repeat创建),它在调用之前以及刚刚调用之后具有正确的值。无论如何,变量respondArray(简单地由调用函数设置)是不同的。简化说明以澄清问题。

问题:如何从控制器中检索正确的值?

完整代码: https://plnkr.co/edit/ViK0GmeHFxTeIA8BYWTC?p=preview

代码:

  • singlePost.ID只是整数值(1,2或3)

CONTROLLER -

 self.respondArray = null;

 self.getCurrentArray = function (postID)
 {
     self.respondArray = postID;
     console.log(postID);  // proper value
     console.log(self.respondArray);  // proper value
 }

HTML -

<div ng-repeat="singlePost in postCtrl.postsArray">
    ...
    VALUE BEFORE INVOKE : {{singlePost.ID}}  // proper value
    <div ng-init="postCtrl.getCurrentArray(singlePost.ID)"></div>
    VALUE READ FROM CONTROLLER : {{postCtrl.respondArray}}  // bad value!
    VALUE AFTER INVOKE : {{singlePost.ID}}  // proper value
    <div ng-repeat="singleResp in postCtrl.respondArray">
        ...  // bad value too!
    </div>
</div>

可能我已经做了一些明显的错误,但已经用完了,所以我希望,有人能够提供帮助。

0 个答案:

没有答案