Внедрение объекта, созданного OjbectBuilder, в качестве свойства для просмотра
У меня есть PresentationModel
Класс AS, который содержит все значения, используемые в SomeView.mxml
, Весь класс для модели является связываемым, и свойство модели в представлении также является связываемым. Тем не менее, я не могу ввести модель в представление, используя PropertyInjector
тег:
- INFO: Data binding will not be able to detect assignments to model
Может, кто-нибудь познакомится с привязкой данных Flex и Mate? Большое спасибо!
MainEventMap.mxml
<EventHandlers type="{FlexEvent.INITIALIZE}">
<ObjectBuilder generator="{PresentationModel}" registerTarget="true">
<Properties dispatcher="{scope.dispatcher}"/>
</ObjectBuilder>
</EventHandlers>
<Injectors target="{SomeView}" debug="true">
<PropertyInjector targetKey="model" source="{PresentationModel}" />
</Injectors>
Фрагмент из PresentationModel.as
[Bindable]
public class PresentationModel extends EventDispatcher
{
public var dispatcher:IEventDispatcher;
//.....other variables and functions
}
Фрагмент из SomeView.mxml
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="518" height="562" >
<mx:Script>
<![CDATA[
//...... all the imports
[Bindable]
public var model:OSGiBrokerConsoleModel;
// ......other variables and functions
]]>
</mx:Script>
// ..... actual view components
</mx:Canvas>
2 ответа
Вы можете смело игнорировать это информационное сообщение.
Это сообщение обычно отображается, когда у вас есть PropetyInjector с исходным кодом и ключом источника, где свойство, определенное с помощью "sourceKey", не может быть привязано, поэтому мы хотим убедиться, что вы знаете, что текущее значение этого свойства будет единственным целевым когда-либо получит (когда свойство не является привязываемым, значение копируется, и привязка не устанавливается). Это может или не может быть то, что вы хотите.
В этом случае нет sourceKey, потому что вы не хотите связываться с каким-либо конкретным свойством источника. Вместо этого вы хотите передать весь PM для просмотра. Из-за этого вы не хотите устанавливать привязку, просто отправьте значение в представление один раз.
В тех случаях, когда sourceKey отсутствует, или когда вы просто отправляете одноразовое значение (т. Е. Когда вы отправляете константу), сообщение можно игнорировать.
Вы не можете привязать к классу. Привязка класса означает, что все члены этого класса будут привязаны, но не само определение.
Вы должны создать функцию-член (getter/setter) для модели представления, которая возвращает данные, которые вы хотите использовать в качестве источника. Затем вам также необходимо создать экземпляр PresentationModel, который вы можете использовать для привязки. Таким образом, вместо привязки к PresentationModel.data, вы должны связываться с myPM.data.