avalon2 单页面时候切换页面问题

发布于 2022-09-04 05:28:33 字数 966 浏览 13 评论 0

每次切换路由的时候需要加载页面模板,,和所对应的页面JS采用require.js,发现每个页面自己js通过avalon.define()定义的。。第一次渲染正常,下一次会报错error:[' + $id + '] had defined,代码如下
define(["avalon"],function(avalon){
return function(container,menu,param){
var canSubMenus = avalon.define({
$id:"can_subMenus",
menu:{}
});
avalon.scan(container);
};
});
如果把avalon.define写在外面。。。不是每次定义发现第一次正常。。第二次不会渲染,看了下代码发现
vm && !vm.$element 这个限制。。vm依然存在于avalon.vmodels。上一次已经初始化好了,所以不会重新渲染。
define(["avalon"],function(avalon){
var canSubMenus = avalon.define({
$id:"can_subMenus",
menu:{}
});
return function(container,menu,param){
avalon.scan(container);
};
});
1.当页面重新进来的时候,如何让这个VM重新渲染一遍?
2.当ms-controlll对应的真个元素移除的时候,其对应的VM有没有办法消除?
3.目前本人这么处理的delete avalon.vmodels[$id],感觉太简单粗暴了有没有更好的办法。
4.当从一个单页面切换的另一个单页面的时候,如何做好上一个页面的清理工作?
5.avalon2这个框架。。适合单页面应用吗?
6.以弃坑。。。投奔vue.js或者knockout.js。。。avalon2只提供创建方法,没有提供解绑方法。。。。这个有点坑,以后有机会在用avalon2,感觉整体还是不错的。嘿嘿。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

謸气贵蔟 2022-09-11 05:28:33

1.delete avalon.vmodels[$id],每次在主页面把非必要的请一次。

2.if (avalon.vmodels[$id]) {

  throw Error('error:[' + $id + '] had defined!')

}
在Avalon.js中屏蔽掉这段代码。否则在第二次调用的时候。。不会再初始化这个ms-controller,单页面的情况下我是这么解决的。

3.有入坑的小伙伴。。。。可以教育一下怎么解决的。。。。感觉avalon1还支持。。到了avalon2.。感觉对单页面支持的不咋地。

匿名。 2022-09-11 05:28:33

我做一个fast start吧

https://github.com/RubyLouvre...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文