2015-05-05 4 views
6

Ich habe den folgenden Code, der HTML zu einer Variablen hinzufügt. Wenn es jedoch auf der Seite angezeigt wird, funktioniert der Link nicht.Angularjs Hinzufügen von HTML zu Variable mit UI-Sref-Link

Was ist der beste Weg, um eine ui-sref Verbindung zu erhalten, wenn sie dynamisch eingefügt wird?

JAVASCRIPT

.controller('page', function($scope, $rootScope, $http, $state, $sce) { 

    $scope.message = $sce.trustAsHtml('A <a ui-sref="login">login</a> link'); 

}) 

HTML

<div ng-bind-html="message"></div> 
+0

Wahrscheinlich '$ compile' verwenden müssen -' $ sce.trustAsHtml ($ kompilieren ('A login link') ($ scope)); ' – tymeJV

+0

Warum versuchen Sie es dynamisch hinzufügen? Kannst du es nicht einfach in die Template/HTML-Datei schreiben? – ajkavanagh

Antwort

2

Es gibt a working plunker

Ich würde sagen, dass wir Kombination verwenden können:

  • $state.href()(doc here) und
  • ng-href(doc here)

(aber nur für den Fall, wenn die übergebenen params Teil der URL ist)

Dies wäre das Ergebnis

<a ng-href="{{$state.href(myStateName, myParams)}}"> 

Und jetzt (in the plunker) können wir ändern myStateName in parent, parent.child, home und es wird href richtig die erzeugte Änderung:

<input ng-model="myStateName" /> 
<input ng-model="myParams.param" /> 

Da diese Zustände in Plunker sind

$stateProvider 
    .state('home', { 
     url: "/home", 
     ... 
    }) 
    .state('parent', { 
     url: "/parent?param", 
     ... 
    }) 
    .state('parent.child', { 
     url: "/child", 
     ... 

Überprüfen es here

Verwandte Themen