@published - è vincolante (modello per ricercare altri e vista modello)
Caso d'uso a due vie per @published è, se la vostra proprietà modello è attributo anche in un tag.
Esempio: per un elemento tabella si desidera fornire dati da un'origine esterna, in modo da definire i dati degli attributi, in questo caso la proprietà dei dati deve essere @ pubblicata.
<polymer-element name = "table-element" attributes ="structure data">
<template>
<table class="ui table segment" id="table_element">
<tr>
<th template repeat="{{col in cols}}">
{{col}}
</th>
</tr>
<tr template repeat="{{row in data}}">
etc......
</template>
<script type="application/dart" src="table_element.dart"></script>
</polymer-element>
@CustomTag("table-element")
class Table extends PolymerElement {
@published List<Map<String,String>> structure; // table struture column name and value factory
@published List<dynamic> data; // table data
@observable - è vincolante un modo - (modello per ricercare altri)
Se si desidera solo per passare i dati da modello per ricercare altri uso @observable
Esempio: Per utilizzare sopra tavolo elemento che devo fornire i dati, in questo caso i dati e la struttura saranno osservabili nel mio codice dardo test da tavolo.
<polymer-element name = "table-test">
<template>
<search-box data ="{{data}}" ></search-box>
<table-element structure ="{{structure}}" data = "{{data}}" ></table-element>
</template>
<script type="application/dart" src="table_test.dart"></script>
</polymer-element>
codice dardo
CustomTag("table-test")
class Test extends PolymerElement {
@observable List<People> data = toObservable([new People("chandra","<a href=\"http://google.com\" target=\"_blank\"> kode</a>"), new People("ravi","kiran"),new People("justin","mat")]);
@observable List<Map<String,String>> structure = [{ "columnName" : "First Name", "fieldName" : "fname"},
{"columnName" : "Last Name", "fieldName" : "lname","cellFactory" :"html"}];
Test.created():super.created();
esempi sono tratti da My Repo
Grazie. Allora quando è il caso di usare @published? Anche se utilizzo solo una connessione unidirezionale, posso ottenerla con @observable, giusto? È una cattiva convenzione o perde qualche prestazione? – Blaszard
risposta aggiornata, per favore fatemi sapere se qualcosa non è chiaro. – invariant
Grazie per il chiarissimo chiarimento. E ho appena scoperto di aver frainteso '@ published' e' @ observable' nel mio primo commento qui ... Scusa. – Blaszard