maki
maki

Reputation: 535

angular js render if

I have a multiple columns of data rendering in ng-repeat, when I click on some item form column another one is displayed but when I click on the specific item from the last column I want to display a form, I try to use ng-if to net render the form in wrong column but when the last column is rendered and I press on the item form appears on all columns not only on last one

this is my code:

<div class="span4 menu-board" data-ng-repeat="menu in $parent.MENU">
                <ul class="nav nav-tabs nav-stacked">


                    <li data-ng-if="last_admin_code == 'CWR Acknowledgement Transaction Status'">
                        <!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
                        <div class="editor span8" id="RECORD">
                            <button type="button" class="btn btn-mini btn-toggle">
                                <i class="icon-pencil"></i>
                            </button>
                            <div class="DETAIL">
                                <div class="row span8 display">
                                    <div class="span3 control-label"><p>Status Name:</p></div>
                                    <div class="span5"><b><span>Accepted with Changes</span></b></div>
                                    <div class="clearfix"></div>
                                </div>
                                <div class="row span8 display">
                                    <div class="span3 control-label"><p>Status Code:</p></div>
                                    <div class="span5"><b><span>AC</span></b></div>
                                    <div class="clearfix"></div>
                                </div>
                                <div class="row span8 display">
                                    <div class="span3 control-label"><p>Status Description:</p></div>
                                    <div class="span5"><b><span>&nbsp;</span></b></div>
                                    <div class="clearfix"></div>
                                </div>
                                <div class="row span8 display">
                                    <div class="span3 control-label"><p>Acknowledgement Category:</p></div>
                                    <div class="span5"><b><span>Accepted</span></b></div>
                                    <div class="clearfix"></div>
                                </div>
                                <div class="clearfix"></div>
                            </div>
                            <div class="FORM">
                                <form action="#" method="POST" class="form-horizontal" id="form2" onsubmit="return false;">
                                <fieldset id="fieldset1">
                                    <div class="control-group">
                                        <label class="control-label">Status Name:</label>
                                        <div class="span3 controls">
                                            <input class="span3" type="text" novalidate="" value="Accepted with Changes" />
                                        </div>
                                    </div>
                                    <div class="control-group">
                                        <label class="control-label">Status Code:</label>
                                        <div class="span3 controls">
                                            <input class="span3" type="text" novalidate="" value="AC" />
                                        </div>
                                    </div>
                                    <div class="control-group">
                                        <label class="control-label">Status Description:</label>
                                        <div class="span3 controls">
                                            <textarea class="span3"></textarea>
                                        </div>
                                    </div>
                                    <div class="control-group">
                                        <label class="control-label">Acknowledgement Category:</label>
                                        <div class="span3 controls">
                                            <select class="span3" novalidate="">
                                                <option>Accepted</option>
                                                <option>Rejeted</option>
                                                <option>Other</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="clearfix" style="margin-bottom: 20px;"></div>

                                    <div class="">
                                        <button class="btn btn-primary pull-right">Save</button>
                                        <button class="btn btn-danger pull-right"  style="margin-right: 10px;">Delete</button>
                                        <ul class="nav nav-pills pull-right" style="margin-right: 10px; margin-bottom: 0px;">
                                            <li><a href="javascript:void(0);" onclick="$(this).parents('.editor').removeClass('active');">Cancel</a></li>
                                        </ul>
                                    </div>
                                    <div class="clearfix"></div>
                                </fieldset>
                            </form>
                            </div>
                        </div>
                    </li>


                    <!--<li class="header"><a href="#/data/{{$parent.MENU[$index].id}}" onclick="return false;">{{$index}}: {{menu.title}}</a></li>-->
                    <li data-ng-repeat="$admin in admins.data | filter:{parent_id:$parent.MENU[$index].id}">
                        <a data-ng-builder data-ng-click="$parent.addBreadcrumbItem($admin, ($parent.$index + 1) );" ng-class="{active: ($parent.SELECT_PARENT==admin.id)}">{{$admin.reference_data.code}} <span class="pull-right icon-chevron-right"></span></a>
                    </li>               



                </ul>
            </div>

my question is how not to render the form at all, not to hide it with ng-show or ng-if

Upvotes: 1

Views: 1019

Answers (2)

Danice
Danice

Reputation: 23

I usually use ui-if from angular-ui for this.

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngIf.js

Upvotes: 0

Josh
Josh

Reputation: 44916

ng-switch is designed to do precisely this. It actually removes and inserts items into the DOM based on the condition.

Upvotes: 2

Related Questions