2016-07-28 13 views
4

My-Komponente Objekt sieht wie folgt aus:Pass Bindungen TemplateUrl in Angular der Komponente

var options = { 
    bindings: { 
     title: '<', 
     rows: '<' 
    }, 
    controller: registers, 
    templateUrl: function ($element, $attrs) { 
     return '/app/dashboard/registers/register.html'; 
    } 
}; 

Ich brauche den Zugang zu den Bindungen title und rows in meinem register.html Markup. Ich verstehe $element und $attrs, aber ich bin nicht ganz sicher, wie man das in eine templateUrl injiziert, die eine Zeichenkettenreferenz zu einer HTML-Akte ist.

ich in der Lage sein möchte, diese Werte in der Vorlage als solche verwendet werden:

<p>Title: {{vm.title}}</p> 
<p>Rows: {{vm.rows}}</p> 

jemand mich in eine Richtung zeigen kann, wo die templateUrl die geschweiften Klammern verwenden können, um die Werte der Bindungen einzubetten in das Markup?

Antwort

8

Es ist nicht verwandt mit templateUrl Funktion, keine zusätzlichen Aktionen sollten dort durchgeführt werden. Wenn keine controllerAs Option angegeben ist, Controller-ID defaults to $ctrl, nicht vm. Scope Eigenschaften sollte Hier ist eine demo in Vorlage als

<p>Title: {{$ctrl.title}}</p> 
<p>Rows: {{$ctrl.rows}}</p> 

zur Verfügung, die diese (dank @AWolf) zeigt.

+1

Hier ist eine [grundlegende Geige] (https://jsfiddle.net/awolf2904/gowmLjp6/), die die Verwendung von '$ ctrl' in Markup zeigt. estus hat die Antwort schneller hinzugefügt, also lasse ich meine vorbereitete Geige liegen. – AWolf

+0

@AWolf Schön, danke für den Link. – estus

+0

Könnten Sie bitte die ursprüngliche Frage beantworten? Ich muss zwischen zwei Template-URLs wählen, abhängig vom Wert einer der Bindungen, die der neue UI-Router als Parameter übergeben hat ... – Vi100