2016-07-12 5 views
1

ich so vielleicht in Winkel- und Javascript bin sehr neu auf die Richtlinie es ist eine dumme Frage ...Angular, übergeben Parameter aus Sicht

benötige ich Informationen von einem Controller (route.id) auf einen Blick genommen werden interpretiert von einer Richtlinie, die in andere Richtlinie übersetzt werden. Es tut mir leid, aber ich kann es nicht besser erklären. Ich habe einen Code Vereinfachung getan:

index.html

<div ng-app="myapp" ng-ctrl="myctrl"> 
    <adir aattr="{{param}}" > 
    </adir> 
</div> 

myapp.js:

angular.module("myapp",[]) 
    .controller('myctrl',function(){ 
     param="bye" 
    }) 
    .directive('oldie', function() { 
     return{ 
      restrict:"E", 
      template: function(elem,attr) { 
       return "<div >Hello "+ attr.battr +" </div>" 
      } 
     } 
    }) 
    .directive('adir', function() { 
     return { 
      restrict:"E", 
      template: function(elem,attr){ 
       return "<oldie battr={{" + attr.aattr + "}}></oldie>" 
      } 
     } 
    }); 

Was ich brauche ist, den Inhalt von param auf ein Attribut zu geben, verwendet werden, in eine Richtlinie.

ich einen jsfiddle getan haben zu spielen: jsfiddle

Vielen Dank im Voraus,

Antwort

0

Es gibt wenige Orte falsch in Ihrem Code.

  1. Sie verwendet haben "ng-ctrl" statt ng-controller. Der Controller ist also überhaupt nicht effektiv.

    <div ng-app="myapp" ng-controller="myctrl"> 
    
  2. Sie haben die Variable $ scope im Controller nicht definiert.

    .controller('myctrl',function($controller){ 
    
  3. In Ihrer ersten Richtlinie, müssen Sie {{}} Winkel Ausdrücke nicht verwenden, wenn in der Vorlage ein Attribut festlegen. Es kann eine einfache Zeichenfolge sein.

    return "<oldie battr=" + attr.aattr + "></oldie>" 
    

Here ist die Geige.

Eine Alternative zu diesem Ansatz ist auch der Zugriff auf die Attribute über Bindungen in einem isolierten Bereich.

Bitte beachten Sie den Abschnitt Richtlinie Definition Objekt auf this Artikel.

+0

Vielen Dank für Ihre Antwort. Wie ich schon sagte, war es eine Code-Vereinfachung und Fehler, die Sie entdeckt haben, sind nur Fehler, die ich bei der "Vereinfachung" gemacht habe. Es tut mir Leid. So beantwortet wirklich mein Problem nicht (meine Schuld natürlich). Auf der anderen Seite haben mir Ihre Änderungen und ein funktionierender Code geholfen zu finden, wo mein Problem war. Also vielen Dank. –

0

Hallo u einmal die Vorlage Richtlinie die Schaffung u den Umfang benötigen, um die Werte zu erhalten, also von der Richtlinie u angeben müssen der Umfang

JS

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 
    $scope.message = "Product created!"; 
}) 

app.directive('adir', function() { 
     return{ 
      restrict:"E", 
      scope: { 
      aattr: '@' 
     }, 
     template: '<oldie battr= {{aattr}} ></oldie>' 

    } 
    }) 

    app.directive('oldie', function() { 
    return{ 
      restrict:"E", 
       scope: { 
      battr: '@' 
     }, 
     template: '<div class="alert">Hello {{battr}}</div>' 
    } 
    }) 

HTM L

<adir aattr="{{message}}" > 
    </adir> 

für refrence https://plnkr.co/edit/AjQnENCvPOU9xWzdylFL