嗨,我有骨干集合和子视图的设计问题。
我的问题是我有一个向下三层的子视图,它需要一个从父视图向上三层传递的图像集合。我不喜欢这样,因为它创建了源自父视图的依赖链。
目前,我的图片集需要一个 business_id 来生成 URL /business/the-biz-id/images。我通过子视图传递集合,因为我没有全局可用于渲染子视图的 business_id。
我是否应该使 business_id 全局可用,以便子视图可以实例化集合而无需将 business_id 传递给它?我不确定我是否应该这样做,因为如果我忘记全局变量声明可能会导致未来的问题。但是,如果它可用,我可以避免通过多个视图传递我的图像集。
如何在不进行全局声明的情况下使 business_id 可用于子视图?建议?意见?
2013 年 10 月 27 日更新:
这就是我最终使用的:
App.BusinessHelper = function (bizId) {
var bizId = bizId;
var obj = {};
obj.getBizId = function () {
return bizId;
}
App.BusinessHelper = obj;
}
我喜欢这种结构,因为 bizId 不能轻易更改或更改。也就是说,我让自己对这个对象产生了巨大的依赖,但在我的情况下,为了方便起见,这是值得的。