2016-09-28 3 views
0

Я довольно новый для полимера, я хотел выполнить ниже сценарий ... У меня есть переменная связывания {{readonly}}, через которую я отправляю данные из родительского Дом-HTML для детей Дом-HTML, в PolymerУправление элементом dom-if дочернего элемента после получения свойства из родительского элемента

фрагмент кода примерно так ..

вызова ребенка DOM из родителей (я уже инициализирован только для чтения в родителю с «истинным»)

<wms-griddata order-obj='{{item}}' readonly='{{readonly}}'></wms-griddata> 

В дочернем элементе

<dom-module id="wms-griddata"> 
..... 
    <template is="dom-if" if="{{_isreadonly()}}"> 
    <callsome1></callsome1> 
</template> 
<template is="dom-if" if="{{!_isreadonly()}}"> 
    <callsome2></callsome2> 
</template> 

<script> 
    Polymer({ 
    is : 'wms-griddata', 
    properties: { 
      readonly: { 
        type: String 
       } 
    ....... 
    ....... 
      _isreadonly: function(){ 
       if(this.readonly == 'true') 
        return true; 
       else 
        return false; 
     } 

Я считаю, что в дочерний элемент сначала создал увольняют, то HTML окрашена, то все свойства локального DOM получает значение от родителя.

Но я хочу, чтобы дом-если проверяется только после того, как я получаю значение от родителя {{чтения}}, так что я могу назвать правильный суб-ребенок-дом [callsome1, или callsome2]

Может ли кто-нибудь предложить мне идею/трюк, как я могу достичь необходимого?

Заранее спасибо

ответ

1

Вместо называть this.readOnly я думаю, что вы должны передать эту переменную в качестве параметра _isReadOnly функции следующим образом:

_isreadonly: function(readOnly){ 
    return readOnly == 'true'; 
} 

Итак, ваш HTML будет выглядеть:

<template is="dom-if" if="{{_isreadonly(readOnly)}}"> 
    <callsome1></callsome1> 
</template> 
<template is="dom-if" if="{{!_isreadonly(readonly)}}"> 
    <callsome2></callsome2> 
</template> 

В этом случае будет вызываться функция readonly, _isreadonly и DOM будет обновляться.

+0

спасибо :) это сработало – Liakat