2016-09-17 2 views
0

Ich versuche, eine Winkel Richtlinie `Kendo-ui Winkel Richtlinie über Editor

{ 
    field:"stateID", 
    hidden: true, 
    title: "State", 
    editor: function (container, options) { 
    var _statesDirective = $('<div><my-states></my-states></div>'); 
    _statesDirective.appendTo(container); 
}` 

Mein diretive anhängen sieht wie folgt aus:

appRoot.directive('myStates', function() { 
return { 
    restrict: 'EA', 
    templateUrl: 'directivesHTML/ddStates.html', 
    scope:false, 
    controller: function ($scope) 
    { 
     var dsStates = new kendo.data.DataSource({ 
       autoBind: false, 
       page: 1, 
       transport: { 

        read: { 
         url: "api/util/getStates", 
         dataType: "json" 
        } 
       }, 

       schema: { 
        model: { 
         id: "stateID", 
         fields: { 
          stateID: { type: 'string' }, 
          name: { type: "string" } 
         } 
        } 
       } 

      }); 


     dsStates.read().then(function() { 

       $('#ddStates') 
       .kendoDropDownList({ 
        dataTextField: "name", 
        dataValueField: "stateID", 
        dataSource: dsStates, 
        optionLabel: '--', 
        change: function (e) { 
          } 

       }); 
     }); 

    } 
}; 

});

Aus irgendeinem seltsamen Grund wird es nicht funktionieren, wenn ich die Direktive an einer anderen Stelle außerhalb der HTML-Seite setze, funktioniert es gut, aber nicht von hier. Ich dachte, es könnte die Version sein, die es in diesem Monat vergeblich auf den neuesten Stand gebracht hat.

Irgendwelche Hinweise?

-Danke,

+0

schon eine Weile her, seit ich habe dies getan, versuchen 'angular.element 'anstelle von' $ 'mit –

+0

zu starten Danke, versuchte es, hat nicht funktioniert, aber danke für diesen Tipp. –

Antwort

0

Sie benötigen eine html zu kompilieren, bevor es (mit $ kompilieren Service) anhängt.

Also in Ihrem editor: function,

// Specify what it is we'll be compiling. 
var to_compile = '<div><my-states></my-states></div>'; 
// Compile the tag, retrieving the compiled output. 
var _statesDirective = $compile(to_compile)($scope); 
// Ensure the scope and been signalled to digest our data. 
$scope.$digest(); 

// Append the compiled output to the page. 
$compiled.appendTo(_statesDirective); 

Weitere Referenz Angular Docs for $compile

Auch how can we use $compile outside a directive in Angularjs

+0

Nun, was weißt du? .... das war absolut richtig !! Vielen Dank !! –

Verwandte Themen