У меня есть сигналы в службе, я хочу выставить эти сигналы компонентам (без использования Getter)Html

Программисты Html
Ответить Пред. темаСлед. тема
Anonymous
 У меня есть сигналы в службе, я хочу выставить эти сигналы компонентам (без использования Getter)

Сообщение Anonymous »

У меня есть этот сценарий, мой сервис содержит мало сигналов (они используются с помощью ресурса API для реактивного получения данных, а также показывают на уровне пользовательского интерфейса)
Мое требование - это что я хочу познакомить эти значения пользователю в компоненте HTML. < /p>
Мои проблемы: < /p>

Я обычно использую Getter и Setter, чтобы предоставить эти свойства из сервиса (Private - не доступен в HTML). < /P>
< /li>
Я не Хочу использовать вычисленную здесь, потому что фактических вычислений не происходит, мне просто нужна ссылка на сигнал сервиса, этот сценарий определенно не классифицируется как производное состояние, это просто ссылка на сигнал из сервиса . < /p>
< /li>
Я не хочу публиковать свою услугу, я хочу разоблачить только определенные элементы, я бы сохранил дополнительные элементы как частные, Но использование службы в HTML не является для меня вариантом. : < /p>
Сервис: < /h3>

Код: Выделить всё

@Injectable({
providedIn: 'root',
})
export class SomeService {
http = inject(HttpClient);
serviceIdSignal: WritableSignal = signal(0);

rxResource = rxResource({
request: () => this.serviceIdSignal(),
loader: ({ request: id }) => {
return this.http.get(`https://jsonplaceholder.typicode.com/todos/${id}`);
},
});

resource = resource({
request: () => this.serviceIdSignal(),
loader: ({ request: id, abortSignal }) => {
return fetch(`https://jsonplaceholder.typicode.com/todos/${id}`, {
signal: abortSignal,
}).then((r) => r.json());
},
});
}
< /code>
 Компонент: < /h3>
@Component({
selector: 'app-root',
imports: [JsonPipe],
template: `

{{someService.serviceIdSignal()}}

@if(someService.rxResource.status() === rs.Resolved) {
{{someService.rxResource.value() | json}}
} @else {
Loading...
}

@if(someService.rxResource.status() === rs.Resolved) {
{{someService.resource.value() | json}}
} @else {
Loading...
}
`,
})
export class App {
rs = ResourceStatus;
private someService = inject(SomeService);
}
< /code>
ниже приведена ошибка, которую я получаю: < /p>

✘ [error] ng1: свойство 'someService' является частным и Только доступный
в приложении класса '. [Плагин угловой компилятор] < /p>
src/main.ts:56:12:
56 │           {{someService.resource.value() | json}}
╵             ~~~~~~~~~~~
demo

Подробнее здесь: https://stackoverflow.com/questions/794 ... onents-wit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница в Java между использованием getter() и getter(Object c)
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Почему @Getter's @Getter не генерирует методы получения
    Гость » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Гость

Вернуться в «Html»