Javascript 是否有可能使Angularjs ng开关不重新渲染视图?
在我网站的某些页面中,ng switch中有一些指令,如下所示:Javascript 是否有可能使Angularjs ng开关不重新渲染视图?,javascript,angularjs,rendering,ng-switch,Javascript,Angularjs,Rendering,Ng Switch,在我网站的某些页面中,ng switch中有一些指令,如下所示: <div ng-switch="contentMenuObj.model"> <div ng-switch-when="calendar"> // Some directive </div> <div ng-switch-when="history">
<div ng-switch="contentMenuObj.model">
<div ng-switch-when="calendar">
// Some directive
</div>
<div ng-switch-when="history">
// Some directive
</div>
</div>
//一些指令
//一些指令
每次我更改“视图”(从日历到历史)并返回(从历史到日历),都会重新呈现日历视图,并在服务器中进行新的查询
我的问题是关于这种行为,是否有可能不重新渲染视图?如果不可能,解决这个问题的最佳方法是什么?如果我理解正确。当contentMenuObj.model更改时,您不希望重新渲染视图-对吗?如果是,则应用单向绑定
<div ng-switch="::contentMenuObj.model">
<div ng-switch-when="calendar">
// Some directive
</div>
<div ng-switch-when="history">
// Some directive
</div>
</div>
//一些指令
//一些指令
在这种情况下,模型将只加载一次
如果只想加载一次指令,请尝试使用ng show/ng hide指令
<div ng-show="contentMenuObj.model == 'calendar'">
// Some directive
</div>
<div ng-show="contentMenuObj.model == 'history'">
// Some directive
</div>
//一些指令
//一些指令
如果我理解正确。当contentMenuObj.model更改时,您不希望重新渲染视图-对吗?如果是,则应用单向绑定
<div ng-switch="::contentMenuObj.model">
<div ng-switch-when="calendar">
// Some directive
</div>
<div ng-switch-when="history">
// Some directive
</div>
</div>
//一些指令
//一些指令
在这种情况下,模型将只加载一次
如果只想加载一次指令,请尝试使用ng show/ng hide指令
<div ng-show="contentMenuObj.model == 'calendar'">
// Some directive
</div>
<div ng-show="contentMenuObj.model == 'history'">
// Some directive
</div>
//一些指令
//一些指令
角度重新呈现您的指令,因为ng开关在条件不满足时移除div,这使得指令被销毁,下次必须重新呈现
与ng开关
指令相比,ng show
指令不删除元素,而只隐藏元素
因此,如果要在不重新渲染的情况下隐藏和显示内容,请尝试:
<div>
<div ng-show="contentMenuObj.model === 'calendar'">
// Some directive
</div>
<div ng-show="contentMenuObj.model === 'history'">
// Some directive
</div>
</div>
//一些指令
//一些指令
角度重新呈现您的指令,因为ng开关在条件不满足时移除div,这使得指令被销毁,下次必须重新呈现
与ng开关
指令相比,ng show
指令不删除元素,而只隐藏元素
因此,如果要在不重新渲染的情况下隐藏和显示内容,请尝试:
<div>
<div ng-show="contentMenuObj.model === 'calendar'">
// Some directive
</div>
<div ng-show="contentMenuObj.model === 'history'">
// Some directive
</div>
</div>
//一些指令
//一些指令