给出了2个吊索模型,我想注入其中一个。这是否可以使用注释,或者我是否需要创建PostContruct方法作为解决方法?
示例:
模型A
@Model(adaptables = Resource.class)
public class ModelA {
@ValueMapValue(name = "jcr:title", injectionStrategy = InjectionStrategy.OPTIONAL)
private String title;
@Inject // Not working!
private ModelB modelB;
}
模型B
@Model(adaptables = Resource.class)
public class ModelB {
@ValueMapValue(injectionStrategy = InjectionStrategy.OPTIONAL)
private String text;
}
答案 0 :(得分:4)
从1.1.0版本的Sling Models开始,您可以使用@Self
注释来注入可以根据当前适应性进行调整的模型。在这种情况下来自Resource
的{{1}}。
注入自适应对象本身(如果字段的类匹配或是超类型)。如果存在@Self注释,则尝试将adaptable调整为字段类型。
ModelA
答案 1 :(得分:0)
您无法将ModelB注入ModelA,您可以做的是获取ModelA中的资源实例并将其调整为ModelB
function getColorFromTheme()
{
var color ;
XrmServiceToolkit.Rest.RetrieveMultiple(
"ThemeSet",
"",
function (results) {
if (results.length >= 1)
for (var i = 0; i < results.length; i++) {
if(results[i].IsDefaultTheme===true)
color=results[i].GlobalLinkColor;
}
},
function (error) {
alert(error.message);
},
function onComplete() {
},
false
);
return color;
};