如何关联本地(非全局)JSView助手并编程访问及设置依赖
解决方法
方法一:传入助手时直接配置依赖
不用等link执行完,定义过滤器的时候就能直接把依赖加上,再传入link方法:
// 先定义过滤器并设置依赖 const myHelpersFilter = function(value) { // 这里写你的过滤器逻辑 }; myHelpersFilter.depends = '~myHelpersParam'; // 调用link时把配置好的助手传进去 const tmpl = 你的模板实例.link(数据对象, { myHelpers: { myHelpersFilter: myHelpersFilter // 其他本地助手也可以放在这里 } });
方法二:link执行后修改依赖
如果确实要在link调用完成后操作,直接通过返回的模板实例的view属性层层访问到目标过滤器就行:
// 先执行link方法传入助手 const tmpl = 你的模板实例.link(数据对象, { myHelpers: { myHelpersFilter: function(value) { // 过滤器逻辑 } // 其他本地助手 } }); // 直接修改依赖规则 tmpl.view.helpers.myHelpers.myHelpersFilter.depends = '~myHelpersParam';
注意路径要对应你传入助手时的层级——因为你把过滤器放在myHelpers这个分组里,所以得走到myHelpers下面才能找到myHelpersFilter。
小提醒
- 要确认你的模板引擎支持用
depends属性声明助手依赖,不同引擎的实现可能有区别,但核心都是给过滤器函数加这个属性。 - 你这是本地助手,所以直接操作
link返回的视图实例里的助手就行,不用碰全局助手对象。
内容的提问来源于stack exchange,提问作者Java North
相关产品推荐
相关产品推荐

