AngularJS Как преобразовать двухстороннюю привязку компонента к односторонней привязке

Вы были прав, чтобы использовать WaitForSeconds. Но я подозреваю, что вы пытались использовать его без сопрограмм. Вот как это должно работать:

public void SomeMethod()
{
    StartCoroutine(SomeCoroutine());
}

private IEnumerator SomeCoroutine()
{
    TextUI.text = "Welcome to Number Wizard!";
    yield return WaitForSeconds (3);
    TextUI.text = ("The highest number you can pick is " + max);
    yield return WaitForSeconds (3);
    TextUI.text = ("The lowest number you can pick is " + min);
}
1
задан georgeawg 13 July 2018 в 19:57
поделиться

2 ответа

Сделать миграцию на угловое 2+ проще

Преобразовать двустороннюю привязку AngularJS с = для использования односторонней привязки с < для входов и привязки выражения к & для выходов :

app.component("testComponent", {
    bindings: {
        sample: '<',
        sampleChange: '&',
    },
    template: `
        <fieldset>
            <input ng-model="$ctrl.sample"
                   ng-change="$ctrl.sampleChange({$event: $ctrl.sample})"
            />
        </fieldset>
    `,
});

Использование:

<test-component sample="test" sample-change="test=$event">
</test-component>

TEST={{test}}

Причиной этого является то, что он облегчает миграцию в Angular 2+. Угловое 2+ не имеет двусторонней связи с =.

Для получения дополнительной информации см.


Двустороннее связывание с угловым 2+

С угловым 2+ двусторонним связыванием (банан в коробке):

<app-sizer [(size)]="fontSizePx"></app-sizer>

Является синтаксическим сахаром для:

<app-sizer [size]="fontSizePx" (sizeChange)="fontSizePx=$event"></app-sizer>

Для получения дополнительной информации см.

0
ответ дан georgeawg 17 August 2018 в 12:21
поделиться

Кажется, что вы хотели передать значение test в компонентный компонент потребительского компонента, но когда это значение получает изменение вашим компонентом, оно не должно отражаться обратно на значение потребительского компонента. Таким образом, вы можете использовать < (односторонняя привязка) вместо = (двусторонняя привязка) внутри опции bindings. Внутри связывания < убедитесь, что данные будут поступать однонаправленно (сверху вниз).

export const DateWrapperComponent = {
  bindings: {
    test: '<'
  },
  template,
  controller
};

Примечание. Эта функция применима к версии 1.5.x, когда API component был введен в AngularJS

0
ответ дан Pankaj Parkar 17 August 2018 в 12:21
поделиться
  • 1
    но мне нужно отправить данные из представления в компонент, а не из компонента для просмотра в одном случае привязки данных, это возможно? – axlpl 13 July 2018 в 19:56
  • 2
    @axlpl не уверен, что вы спросили? не могли бы вы немного разобраться? – Pankaj Parkar 13 July 2018 в 20:09
Другие вопросы по тегам:

Похожие вопросы: