2015-07-20 8 views
9

Kann jemand bitte ein Beispiel für die ordnungsgemäße Umsetzung von dom-if?Polymer 1.0: Hilfe mit Dom-If

Die official documentation bietet kein Beispiel für eine ordnungsgemäße Verwendung. (Entschuldigung, es gibt keinen direkten Link. Müssen Menü oben links verwenden und wählen dom-if).

Hier ist was ich bisher habe. Offensichtlich funktioniert es nicht.

<template> 
    ... 
    <template is="dom-if" if="{{action}}=='Login'"> 
     <!-- Also tried: if="{{action=='Login'}}" --> 
    <a href="#">Forgot password?</a> 
    </template> 
    ... 
</template> 

Antwort

25

Es ist mühsam, aber Sie haben, dies zu tun:

<template is="dom-if" if="[[_actionIsLogin(action)]]"> 
    <a href="#">Forgot password?</a> 
</template> 

<script> 
    Polymer({ 
    ... 
    _actionIsLogin: function(action) { 
     return action === 'Login'; 
    } 
    ... 
    }); 
</script> 

Explizit eine Funktion erstellen, die entweder true oder false zurückgibt.

+0

Dies ist hilfreich, weil es mich über einen imperativen Ansatz nachdenken ließ. Also, uplooted! Aber kann noch nicht akzeptieren, weil dieser bestimmte Code nicht funktioniert. Fühlen Sie sich frei, es zu ändern! Ich werde. Vielen Dank! =] – Mowzer

+0

Auch glaube ich nicht, dass Sie ein Argument zu einer Funktion so übergeben können? Können Sie? [Siehe diese Frage] (http://stackoverflow.com/questions/31441401/polymer-1-0-is-there-a-way-to-pass-an-argument-to-a-polymer-function-from- an-at). – Mowzer

+0

Sie können Argumente an berechnete Bindungen übergeben, wenn Sie sie als Eigenschaften deklarieren. In der Dokumentation (https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#annotated-computed) heißt es: "Argumente können abhängige Eigenschaften oder String- oder Zahlenliterale sein." – Maria

4

Ich denke, dass das folgende Beispiel ziemlich geradlinig und leicht zu verstehen/Arbeitsgeräte (es ist nicht in dem Link, den Sie zur Verfügung gestellt haben):

https://www.polymer-project.org/1.0/docs/devguide/templates.html

von der Seite ..

.
<div>{{user.name}}</div> 

<template is="dom-if" if="{{user.isAdmin}}"> 
    Only admins will see this. 
    <div>{{user.secretAdminStuff}}</div> 
</template> 
... 

hoffen, dass es helfen s.

+0

Es hilft, weil Sie mir zusätzliche Dokumentation zeigten. Also, uplooted! Aber es beantwortet die Frage nicht, weil ich versuche, einen booleschen Ausdruck auszuwerten, wo Sie einfach einen einfachen booleschen Wert mit "user.isAdmin" haben. Der Ausdruck Evaluation ist hier der Trick und ein wesentlicher Teil der Frage. Es wurde noch keine Antwort akzeptiert. Bitte versuchen Sie es erneut! =] – Mowzer

1
<template> 
    <iron-ajax   
      auto 
      url="https://jsonplaceholder.typicode.com/todos" 
      handle-as="json" 
      last-response="{{baul}}"> 
    </iron-ajax> 

    <template is="dom-repeat" items="{{baul}}" > 
     <template is="dom-if" if="{{item.completed}}">{{item.title}} is completed<br></template> 
    </template> 


</template> 
Verwandte Themen