Как я могу использовать модель в компоненте изолированно, но поддерживать одностороннюю привязку для обновлений модели?

Конструкторы не имеют типа возврата. Так что не

// this is a "pseudo"-constructor
public void TransferService(){

, а скорее

// this is the real deal
public TransferService(){

Относительно

Транзакция является абстрактной и не может быть инстанцирована

Ну, так? Является ли класс Transaction абстрактным классом или интерфейсом? И только тот, у кого есть код, знает ответ на этот вопрос. Если это так, тогда вам нужно будет использовать конкретную реализацию транзакции в вашем коде.

0
задан Abuelo 16 January 2019 в 15:50
поделиться

1 ответ

Проблема здесь в том, что вы делитесь массивом, поддерживающим модели между компонентами, а затем манипулируете массивом (о чем знает Эмбер). Если вы перестали делиться массивом (скопировав ссылки во второй массив):

import Ember from 'ember';

export default Ember.Route.extend({
  model(){
    return [{name: "Frank", age: 22}, {name: "Alan", age: 43}, {name: "Bob", age: 56}] 
  },
  setupController(controller, model){
    controller.set('model', model);
    controller.set('tableModel', model.slice(0));
  }
});

И измените ваш application.hbs, например:

{{my-component model=tableModel}}
{{second-component model=model}}

, вы увидите только изменение в порядке произойдет с компонентом таблицы. Поскольку оба массива указывают на одни и те же ссылки, ваши модели сами привязаны к обоим массивам (т. Е. Изменение свойств модели, таких как age, влияет как на model, так и на tableModel), поскольку они фактически указывают на один и тот же фрагмент памяти. Но сортировка будет влиять только на tableModel, так как теперь вы выделили два массива

Я расширил вашу суть своей собственной копией , в которой я манипулирую ссылочной моделью в [117 ], и это повлияло как на models, так и на tableModels, поскольку базовые элементы в массиве являются одинаковыми ссылками.

0
ответ дан mistahenry 16 January 2019 в 15:50
поделиться