0

特定の配列構造に従って表示結果を変更しようとしています。ng-switch でできると思ったのですが、解決方法がわかりません。

私はこのjsonを持っています:

0: {size: 1, room: 1, id: 1, name: "",…}
huesped: {id: 1, name: "Pablo", lastname: "Bertran", passport: "33025915N", birth: "1987-04-14", country: 10,…}
id: 1
name: ""
room: 1
size: 1
stay: {id: 1, booking: 0, room: 1, bed: 1, guest: 1, indate: "2015-11-02", outdate: "2015-12-02", hotel: 1,…}
1: {size: 1, room: 1, id: 2, name: ""}
2: {size: 1, room: 1, id: 3, name: ""}
3: {size: 1, room: 1, id: 4, name: ""}
4: {size: 1, room: 1, id: 5, name: ""}
5: {size: 1, room: 1, id: 6, name: ""}
6: {size: 2, room: 2, id: 7, name: "1"}

事はです。「huesped」ポジションが宣言されている場合、シナリオが必要です。stay.booking > 0 の場合、シナリオ B. 滞在が宣言されていない場合、シナリオ C.

私はこのコードを試しました:(jsonが$scope.bedsにあると仮定して)

                    <div ng-switch on="bed">
                        <div ng-switch-when="bed.huesped">
                            <div class="md-list-item-text" ng-click="accion(bed.guest.id, 2)" style="background-color: rgba(0,0,255,0.7);">
                                <h3>Cama - {{::bed.id}}</h3>
                                <h4>{{ bed.huesped.name }} {{ bed.huesped.lastname }}</h4>
                            </div>
                        </div>
                        <div ng-switch-when="bed.stay.booking">
                            <div class="md-list-item-text" ng-click="accion(bed.booking.id, 3)" style="background-color: rgba(255,0,0,0.7);">
                                <h3>Cama - {{::bed.id}}</h3>
                                <h4>{{ bed.booking.name }}</h4>
                            </div>
                        </div>
                        <div ng-switch-default>
                            <div class="md-list-item-text" ng-click="accion(bed.id, 1)" style="background-color: rgba(0,255,0,0.7);">
                                <h3>Cama - {{::bed.id}}</h3>
                                <h4>{{::bed.size}} Plaza(s)</h4>
                            </div>
                        </div>
                    </div>

私は何かが間違っていることを知っています。コードに詳細があるかどうか、または ng-switch が必要なことを実行できないかどうかはわかりません。あなたが私を助けてくれることを願っています。

4

1 に答える 1

1

https://docs.angularjs.org/api/ng/directive/ngSwitch言います:

照合する属性値を式にすることはできないことに注意してください。これらは、照合するリテラル文字列値として解釈されます。たとえば、ng-switch-when="someVal" は、式 $scope.someVal の値ではなく、文字列 "someVal" と一致します。

あなたの問題は で簡単に解決できng-ifます。

于 2015-11-20T21:00:22.017 に答える