我在我的应用程序中使用aurelia compose,如下所示:
<compose view-model="childViewModel" model="{myActivationParameters: ...}"></compose>
如何在childViewModel
html代码中访问父视图模型?
最后,我希望能够在childViewModel.html
<span> ${ ParentViewModel.myProperty } and ${ RootViewModel.myOtherProperty } </span>
我正在找aurelia中的knockoutJs $root
和$parent
等。
编辑:我使用aurelia合成而不是自定义组件。不重复。
答案 0 :(得分:2)
在撰写元素中,您可以访问其父级的上下文。所以,只需public class Program {
static void Main(string[] args) {
var containerName = "MyContainer";
var original = "MySecretData!";
var encrypted = Encrypt(containerName, original);
var decrypted = Decrypt(containerName, encrypted);
Debug.Assert(decrypted == original);
Console.ReadLine();
}
static string Encrypt(string containerName, string data) {
byte[] dataToEncrypt = Encoding.UTF8.GetBytes(data);
CspParameters csp = new CspParameters() { KeyContainerName = containerName };
// random key is generated and stored in new created container with provided name
// since it does not exist yet
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp)) {
return Convert.ToBase64String(rsa.Encrypt(dataToEncrypt, false));
}
}
static string Decrypt(string containerName, string data) {
CspParameters csp = new CspParameters() { KeyContainerName = containerName };
// here container already exists so key from that container is used
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp)) {
return Encoding.UTF8.GetString(rsa.Decrypt(Convert.FromBase64String(data), false));
}
}
}
。如果在2个视图模型中具有相同名称的属性,则无法访问父属性。
在将来的版本中,您需要在撰写元素中添加属性${myProperty}
(请参阅https://github.com/aurelia/templating-resources/issues/222)