2016-08-03 4 views
2

Ich bin ziemlich neu in AngularJS und habe das aktuelle Problem.Probleme mit AngularJS

Ich habe folgend in meinem Controller

//Define the programs list table columns 
    $scope.programListColumns = "[{ Name: 'Name'},{ Status: 'Status'},{ CreatedByUserName: 'Created By'},{ ModifiedDate: 'Modified'},{ ModifiedByUserName: 'Modified By'}]"; 

Ich möchte dies als columnMap im HTML-Code für mein Element verwenden, wie so ...

<table-helper datasource="programsList" columnmap="{{programListColumns}}"></table-helper> 

Meine Richtlinie ist ganz umfangreich, aber ich baue grundsätzlich eine Tabelle aus meiner Datenquelle und mappe die Daten, die ich will, mit meiner Spaltenmap, Kopfzeilen und Zeilen für jedes Element erstellen, wenn dies sinnvoll ist.

Hier ist meine Richtlinie ein wenig abgekürzt ...

(function(){ 
var app = angular.module("MdfAngularApp"); 
var tableHelper = function() { 
    //Initiate variables for directive 
    //var template = '<div class="tableHelper"></div>', 
    var link = function(scope, element, attrs) { 
      var headerCols = [], 
       tableStart = '<table>', 
       tableEnd = '</table>', 
       table = '', 
       visibleProps = [], 
       sortCol = null, 
       sortDir = 1; 

      //Watch the datasource for changes. 
      scope.$watchCollection('datasource', render); 

      ... Functions go here ... 
return { 
     restrict: 'E', 
     replace: true, 
     scope: { 
      columnmap: '@', 
      datasource: '=' 
     }, 
     link: link, 
    } 
}; 

app.directive('tableHelper', tableHelper); 
}()); 

die oben tuend ich eine leere Zeichenfolge als meine columnMap bekommen.

Nun, wenn ich wie diese meine html setzen

<table-helper datasource="programsList" columnmap="[{ Name: 'Name'},{ Status: 'Status'},{ CreatedByUserName: 'Created By'},{ ModifiedDate: 'Modified'},{ ModifiedByUserName: 'Modified By'}]"></table-helper> 

und meinen Isolat Umfang zu „=“ columnMap Eigenschaft ändern, alles ist in Ordnung. Ich versuche nur, ein wenig eingekapselter zu sein.

Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Mein Problem war, dass ich meine Spaltenmap nicht als Objekt analysierte. Sobald ich das getan und gültige JSON zur Verfügung gestellt hatte, funktionierte meine Lösung.

Verwandte Themen