Javascript breeze entityAspect的entityManager和entityGroup属性为空

Javascript breeze entityAspect的entityManager和entityGroup属性为空,javascript,knockout.js,breeze,entity-framework-6,durandal,Javascript,Knockout.js,Breeze,Entity Framework 6,Durandal,相当普通的代码,忽略了一些东西。在用户选择列表后,我从breeze加载listing.js视图和列表。在Listing.js中调用后,返回的结果包括具有entityAspect但entityAspect具有null entityManager和entityGroup的实体,以及所有后续调用。所以我不知怎么失去了管理器,当我刷新@Listing.js视图时,实体很好,一切正常 Listings.js: self.selectListing = function (listing) {

相当普通的代码,忽略了一些东西。在用户选择列表后,我从breeze加载listing.js视图和列表。在Listing.js中调用后,返回的结果包括具有entityAspect但entityAspect具有null entityManager和entityGroup的实体,以及所有后续调用。所以我不知怎么失去了管理器,当我刷新@Listing.js视图时,实体很好,一切正常

Listings.js:

self.selectListing = function (listing) {
            //window.location = '#listings/' + listing.listingID() +'/listingFields' <--Same results as below
            self.router.navigate('#listings/' + listing.listingID() +'/listingFields');
    };

所以。不要做一个傀儡,忘记你正在这样做:datacontext.manager.clearUnchanged;在viewModel上停用。

是否可能您正在以某种方式进行整页刷新并丢失entityManager?没有什么意义,但我想这是可能的?我不这么认为,因为shell.js或其他更高版本不会再次被调用。这就是问题所在,我在应用程序的其他地方这样做没有问题。不过谢谢,我还是要再次检查一下。或者有可能您正在创建EntityManager的新实例。。你也可以检查一下。所以我用durandal传递一个单例:定义['plugins/router','durandal/app','services/dataservice'],函数路由器,app,dataservice,我只在datacontext.js中新建一个管理器一次。但这就是我迷路的地方。我猜durandal没有错误地将我的数据服务传递到新页面,或者其他什么。
self.activate = function (id) {
        return dataservice.listing.getListingById(id).then(function (data) {
            self.listing(data.results[0]);
            self.router.reset();
            self.router.makeRelative({
                moduleId: 'listings',
                route: 'listings/:id'
            }).map([
            { route: 'listingFields', title: 'Text Fields', moduleId: 'listingFields/listingFields', hash: '#listings/' + id + '/listingFields', nav: true },
            { route: 'collateral', title: 'Collateral', moduleId: 'collateral/collateral', hash: '#listings/' + id + '/collateral', nav: true }
            ]).buildNavigationModel();
        });
    };