如何将ng-repeat项目值分配给ng-model?

时间:2014-04-01 12:05:14

标签: jquery angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

如何使用ng-model中的ng-repeat来确定项目中项目的价值?

以下ng-repeat:

<ul ng-repeat="post in allposts" class="timeline">

我想设置{{post.userEmail}}的值,如下所示:

<input type="hidden" ng-model="Notify.destEmail[post.userEmail]" />

以下是我的代码:

<ul ng-repeat="post in allposts" class="timeline">
                    <li>
                        <div class="timeline-badge"><i class="glyphicon glyphicon-check"></i></div>
                        <div class="timeline-panel">
                            <div class="timeline-heading">
                                <h4 class="timeline-title">{{ post.postText}}</h4>
                                </p>
                                <form role="form">
                                    <div class="row">
                                        <div class="col-xs-8 col-md-4">
                                            <div class="form-group">
                                                <input type="text" ng-model='Notify.secEmail'
                                                       placeholder="Email of the person who can help?" class="form-control"
                                                       ></div>
                                        </div>
                                            <div class="col-xs-8 col-md-4">
                                                <div class="form-group">
                                                    <input type="text" ng-model="Notify.message"
                                                           placeholder="Enter a Message or Phone number" class="form-control"
                                                           >
                                                    <input type="hidden" ng-model="Notify.loggedInEmail[result.email]" />
                                                    <input type="hidden" ng-model="Notify.postId[post.id]" />
                                                    <input type="hidden" ng-model="Notify.destEmail[post.userEmail]" />
                                                </div>
                                            </div>
                                        <div class="col-xs-6 col-md-3">
                                            <button class="btn btn-danger" ng-click="notify()" type="button">
                                                Notify
                                            </button>
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </li>
                </ul>

我尝试使用ng-init =“Notify.destEmail = {{post.userEmail}}”,但它没有给我实际值。

尝试了许多选择,但没有快乐,我是Angular的新手,所以,请你帮助

1 个答案:

答案 0 :(得分:0)

你不需要ng-init中的{{}},Angular会在没有它的情况下为你评估。

正如我所理解的那样,问题在于,如果你完成这项工作,那么Notify对象上的属性将始终设置为posts数组中的最后一个元素,就像在每次迭代中设置Notify一样object等于循环中的当前项。

更有意义的是,当您单击通知按钮并调用notify()函数时,在Notify对象上设置值,将其更改为包含当前行的post值。

<button class="btn btn-danger" ng-click="notify(post)" type="button">Notify</button>

像这样的小提琴:http://jsfiddle.net/CMnxW/1/