0

嗨,我正在寻找一种方法来在我当前的 VM 中添加新的 VM 对象有人能帮我怎么做吗?

这个想法是这应该输出

Hi!
my name is jhonny

我到目前为止的代码

import {foo} from 'dist/foo';

export class Main{
  constructor(){
    this.heading = "hi!"
    this.fooVar = new Foo("jhonny");
  }
}

<template>
  <section>
    <h2>${heading}</h2>

    <import from="./foo"></import>
    <foo item.bind="fooVar"></foo>
  </section>
</template>



export class Foo{

  static Behavior(){
    return Behavior
      .customElement('foo');
  }

  constructor(name){
      this.name = name;
  }
}

<template>
  <section>
    <h2>my name is ${name}</h2>
  </section>
</template>

也试过

<foo item.bind="fooVar"></foo>
<foo bind="fooVar"></foo>
<foo model.bind="fooVar"></foo>

 <compose
      model.bind="fooVar"
      view-model="foo">
    </compose>

他们都给出了“我的名字”,没有变量名。所以我想它没有约束力

4

2 回答 2

0

我认为你不需要实例化 Foo。

它可能应该是:

<foo name.bind="fooVar"></foo>

Behaviour.withProperty('name');
于 2015-02-14T23:13:17.907 回答
0

您的既定目标是:在当前 VM 中添加 VM 对象。这是它的代码(它删除了您添加的“自定义元素”,而是使用主 VM 中的一个属性,该属性本身就是一个对象):

export class Main{
  constructor(){
    this.heading = "hi!"
    this.fooVar = new Foo("jhonny");
  }
}

<template>
  <section>
    <h2>${heading}</h2>
    <h2>my name is ${fooVar.name}</h2>
  </section>
</template>

export class Foo{
  constructor(name){
      this.name = name;
  }
}

我创建了一个沙盒代码项目来说明上述情况(它是用 TypeScript 编写的)

如果你想尝试沙盒代码项目,这里是说明

我添加了一个Aurelia TypeScript 向导导航示例,以显示您询问的方法的替代方法。

于 2015-02-15T09:14:35.670 回答