Lenker bricht beim Übergeben von this.item in Spine.js

8

Ich versuche, das Todo-Beispiel aus den Spine.js-Dokumenten zu implementieren, das hier gegeben wird: Ссылка

Ich möchte nur Lenker anstelle von jQuery.tmpl verwenden. Ich benutze den Lenker 1.0.rc.1

Wenn ich jedoch versuche anzurufen:

%Vor%

Lenker wirft eine Ausnahme bei this.template(this.item) :

%Vor%

Im Lenker-Lexer kommt this._input als undefiniert zurück.

Meine Vorlage ist wie folgt:

%Vor%

Daten:

%Vor%

Irgendwelche Ideen?

    
amhou 01.12.2012, 07:15
quelle

2 Antworten

1

Das Problem scheint zu sein:

  1. ein Konflikt in den IDs - Ihre Vorlagen-ID ist history-template , aber Sie versuchen, sie als $("#my-template) auszuwählen.
  2. Ihre Daten sollten wie {"data":"hello","id":"c-0"} (ein Objekt) geschrieben werden, ohne die eckigen Klammern (die es zu einem Array machen).

Ich kann Ihren Code ausführen, sobald ich diese beiden Korrekturen vorgenommen habe. Siehe hier für eine funktionierende Demo.

%Vor%

(Siehe auch hier für eine Bestätigung, dass die #if-Logik korrekt funktioniert.)

Bearbeiten

Um die Daten in der Array-Form - { data: "hello", id: "c-0" } - zu verwenden, müssen Sie, um es in einer Lenker-Vorlage zu verwenden, diese in ein Objekt einfügen:

%Vor%

Auf diese Weise können Sie das Iterationsformular "Lenker" {{#each items}} :

verwenden %Vor%

Hier ist die aktualisierte Fiddle.

    
McGarnagle 01.12.2012 07:31
quelle
0

Sie geben die Daten falsch ein.

Laut der offiziellen Lenker-Dokumentation werden die Daten als Lenker an Lenker weitergegeben. Zum Beispiel:

%Vor%

Mit einer Vorlage von:

%Vor%

wird als

gerendert %Vor%     
0xcaff 10.07.2013 00:32
quelle