1

次の方法でアクセスしているtreeStore(「planScreenStore」)があります:

        updateStore : function() {

                    rootNodeID = globals.GlobalModel.planList.scope._id;
                    var planScreenStoreRootNode = this.planScreenStore.getRootNode();

                    if (!(planScreenStoreRootNode === undefined)) {
                        planScreenStoreRootNode.removeAll();
                    }
                    if (globals.GlobalModel.planList.children.length > 0) {
                        planScreenStoreRootNode.appendChild(
                                globals.GlobalModel.planList.children);
                        globals.GlobalModel.planList.children = planScreenStoreRootNode;
                        globals.GlobalModel.planListForCreateNewPlan = planScreenStoreRootNode;
                    }

フィールド「テキスト」に基づいてtreeStoreをソートする必要があります。私は次の2つの方法でそうすることができました:

     updateStore : function() {
                    debugger;
                    rootNodeID = globals.GlobalModel.planList.scope._id;
                    var planScreenStoreRootNode = this.planScreenStore.getRootNode();

                    if (!(planScreenStoreRootNode === undefined)) {
                        planScreenStoreRootNode.removeAll();
                    }
                    if (globals.GlobalModel.planList.children.length > 0) {
                        planScreenStoreRootNode.appendChild(
                                globals.GlobalModel.planList.children);
                        globals.GlobalModel.planList.children = planScreenStoreRootNode;
                        globals.GlobalModel.planListForCreateNewPlan = planScreenStoreRootNode;
                    }
                        this.planScreenStore.sort('text','ASC');

もう1つは:

     updateStore : function() {
                    debugger;
                    rootNodeID = globals.GlobalModel.planList.scope._id;
                    var planScreenStoreRootNode = this.planScreenStore.getRootNode();

                    if (!(planScreenStoreRootNode === undefined)) {
                        planScreenStoreRootNode.removeAll();
                    }
                    if (globals.GlobalModel.planList.children.length > 0) {
                        planScreenStoreRootNode.appendChild(
                                globals.GlobalModel.planList.children);
                        globals.GlobalModel.planList.children = planScreenStoreRootNode;
                        globals.GlobalModel.planListForCreateNewPlan = planScreenStoreRootNode;
                    }


                    planScreenStoreRootNode.sort(function(n1, n2) {
                        debugger ;
                        var v1 = n1.data['text'].toUpperCase();
                        var v2 = n2.data['text'].toUpperCase();

                        if (v1 < v2)
                            return -1;
                        else if (v1 > v2)
                            return 1;
                        return 0;
                    });  

両方の方法で目的の結果が得られますが、どちらの場合も、並べ替えが適用されていなくても完全に正常に動作している間に、並べ替えが実行された後にアプリケーションがクラッシュします。NodeInterface (planScreenRootNode) へのアクセス方法に関連するものですか。どうすればこれを解決できますか?

4

0 に答える 0