nativescript:新对象不是一个新的空对象

时间:2015-12-23 13:01:24

标签: nativescript

仅作为示例。

我有:

var ListingModel = require("~/shared/view-models/listing-view-model");

function listing10(){

var Listing = new ListingModel.ListingViewModel();


Listing.horizontalAddData('10');


frameModule.topmost().navigate("/views/listing/list");


}


function listing20(){

var Listing = new ListingModel.ListingViewModel();

Listing.horizontalAddData('20');

frameModule.topmost().navigate("/views/listing/list");

}

function listing50(){

var Listing = new ListingModel.ListingViewModel();

Listing.horizontalAddData('50');

frameModule.topmost().navigate("/views/listing/list");

}

exports.listing10 = listing10;

exports.listing20 = listing20;

exports.listing50 = listing50;

当我现在点击事件列表10时,我会收到我需要的所有信息。 但是,当我现在点击事件列表20时,我将返回清单10和列表20中的信息。这意味着,新对象不是具有清除数据的新对象吗?

问题:我如何调用新的ListingModel.ListingViewModel();所以我真的回到了一个新的,清晰的ListingViewModel对象?

1 个答案:

答案 0 :(得分:0)

var __extends = this.__extends || function (d, b) {

        for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];

        function __() { this.constructor = d; }

        __.prototype = b.prototype;

        d.prototype = new __();

};

var Model = require('~/shared/view-models/view-model');

var ListingViewModel  = (function (_super) {

__extends(ListingViewModel, _super);

    function ListingViewModel() {
        _super.apply(this, arguments);
    }
    var params = {start: 0 , limit: 7};
    var page = 0;
    var _listRequested =  new virtualArray.VirtualArray(7);
    _listRequested.loadSize = params.limit;
    var _fetch = new f.fetchHelper();
    var loading = 0;
    var that=this;
    var indexes = [];
    var horizontalindex = [];
    var fetchlist = [];
    var listing ='';
    Object.defineProperty(ListingViewModel.prototype, "list", {
        get: function () {
            return _listRequested;
        },
        enumerable: true,
        configurable: true
    });

    ListingViewModel.prototype.horizontalAddData = function(val) {
        listing = val;
        that.loadItems();
    };

    loadItems = function (args) {
        if(loading == 1) return;
        loading = 1;
        fetchlist = [];
            var url = config.apiUrl + '?t=listing'
                + '&listing=' + list
                + '&start=' + params.start
                + '&limit=' + params.limit;

        _fetch.getJSON(url).then(function (res) {
            try {
                for (var i = 0; i < res.list.length; i++) {
                    var am = new Model.Model(res.list[i]);

                    fetchlist.push(am);

                }
                _listRequested.length = _listRequested.length + fetchlist.length;
                _listRequested.load(params.start, fetchlist);
            } catch (e) {
                alert('error' + e);
            }
            params.start = params.start + params.limit;

            loading = 0;
        });
    };

    return ListingViewModel;

})(observable.Observable);

exports.ListingViewModel =  ListingViewModel;