Ich versuche, Elemente basierend auf der Verfügbarkeit der Kamera anzuzeigen/zu verbergen.Wie kann ich eine Eigenschaft basierend auf der Eigenschaft eines anderen Elements berechnen?
Die Ermittlungs- Kamera, Kamera Haus und create-willkommen alle sind innerhalb der Haupt create-App.
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<link rel="import" href="../../bower_components/polymer/lib/elements/dom-if.html">
<link rel="import" href="detect-camera.html">
<link rel="import" href="camera-detached.html">
<link rel="import" href="create-welcome.html">
<dom-module id="create-app">
<template>
<style>
:host {
display: block;
}
</style>
<detect-camera found=[[found]]></detect-camera>
<template is="dom-if" if="{{!allowed}}">
<camera-detached></camera-detached>
</template>
<template is="dom-if" if="{{allowed}}">
<create-welcome></create-welcome>
</template>
</template>
<script>
class CreateApp extends Polymer.Element {
static get is() {
return 'create-app';
}
constructor() {
super();
}
static get properties() {
return {
allowed: {
type: Boolean,
computed: '_isAllowed(found)'
}
};
}
_isAllowed(found) {
return found;
}
}
window.customElements.define(CreateApp.is, CreateApp);
</script>
</dom-module>
Die Kamera Haus und create-willkommen wird auf der Logik angezeigt werden, wenn oder nicht Eigentum von Ermittlungs- Kamera " gefunden" ist wahr .
Die gesamte Logik der Erkennung der Kamera ist innerhalb detect-Kamera. Der Code innerhalb detect-camera setzt sein Attribut "gefunden" Eigenschaft/Attribut.
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<dom-module id="detect-camera">
<template>
</template>
<script>
class DetectCamera extends Polymer.Element {
static get is() {
return 'detect-camera';
}
static get properties() {
return {
found: {
type: Boolean,
value: false,
reflectToAttribute: true,
notify: true
}
}
}
constructor() {
super();
this._foundChanged
}
_foundChanged() {
this.found = true;
}
}
window.customElements.define(DetectCamera.is, DetectCamera);
</script>
</dom-module>
Ich möchte die "erlaubt" Basis berechnen auf der berechneten Eigenschaft " gefunden".
auf einen Blick: Ihnen fehlen einige Zitate 'gefunden = [[gefunden]]' hier. auch, nicht 100% sicher, aber ich denke, das wird nicht so funktionieren, wie du es erwartest "if =" {{! allowed}} "'. 'this._foundChanged' auch ein ungültiger Aufruf einer Methode. Eine letzte Sache: ziemlich sicher, dass Sie eine Zwei-Wege-Bindung für "gefunden" benötigen, wenn Sie sie in der berechneten "isAllowed" verwenden wollen – DVM