2016-06-03 2 views
0

Сегодня я столкнулся странным вопросом (может быть глупыми один) для связывания данных во время навигации по 2 зрению, которая показывает список данных, поступающих от модели OData и панели в нижнемПроблема передачи данных при навигации и маршрутизации?

меня повторить код в это link - http://plnkr.co/edit/ClZqvo?p=info (Вы можете запустить это также через RUN сверху). Просьба запустить его в хромированном состоянии с отключенной защитой (из-за проблемы с CORS).

Теперь проблема заключается в том, что я перехожу к второму представлению (таблица OData) и затем выберите любой элемент списка, который вы увидите внизу, панель отобразит выбранный элемент (так как я использовал метод BindElement для привязки пути). После этого я щелкнул назад, а затем снова откроется мое первое представление (таблица JSON), и я нажал кнопку «Далее», а затем снова появится второе представление. Когда я выбираю тот же элемент, который я выбрал ранее, на этот раз Panel не отобразит выбранные элементы. Эта проблема возникает только тогда, когда я перемещаюсь туда и обратно и выбираю один и тот же элемент. Не в состоянии понять, что вызвало это?

Но если я выберу любой другой предмет, он покажет мне выбранный элемент.

У кого-нибудь есть об этом?

~ Рахул

ответ

0

Это общая проблема при использовании bindElement, я сталкивался с этим тоже. Возможно, не удастся разрешить контекст ссылочного объекта. Таким образом, поля не привязаны к соответствующим значениям.

В качестве альтернативы вы можете использовать setBindingContext для связывания полей внутри панели.

Поскольку вы используете именованную модель, ее следует указать как аргумент setBindingContext.

Так что ваш код будет как

onSelect: function(oEvent) { 
    var oContext = oEvent.getSource().getBindingContext("odataModel"); 
    var oProductDetailPanel = this.getView().byId("prodDetailsPanel"); 
    oProductDetailPanel.setBindingContext(oContext, "odataModel"); 
} 
Смежные вопросы