2016-04-19 9 views
1

Wenn type=1, dann möchte ich die URL die Variable {{vm.firstPath}} verwenden. Für alles andere sollte es {{vm.secondPath}} verwenden.Verwenden von ternären mit href in AngularJS

Ist dies mit einem ternären machbar?

Als ich versuchte, dies zu tun es nicht erkannt wird:

{{type==1? <a href="{{vm.firstPath}}">{{vm.name}}</a> : <a href="{{vm.secondPath}}">{{vm.name}}</a>}} 

Antwort

3

sollten Sie verwenden ng- href anstelle von href für diesen Zweck.

<a ng-href="type == 1 ? 'http://www.google.com' : 'http://www.facebook.com'">Link</a> 

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


app.controller('main', function($scope){ 

    $scope.type = 1; 

}) 

JsFiddle: http://jsfiddle.net/nikdtu/b910258t/

-1

Sie müssen den Code ändern, wie this-

<a href="{{type==1?vm.firstPath:vm.secondPath}}">{{vm.name}}</a> 

Or-

<a href="{{vm.firstPath}}" ng-if="type==1">{{vm.name}}</a> 
<a href="{{vm.secondPath}}" ng-if="type!=1">{{vm.name}}</a> 
+0

Dies wird nicht funktionieren, ist einige Fälle. Lesen Sie mehr über href und ng-href @ https://docs.angularjs.org/api/ng/directive/ngHref –

+0

@NikhilMaheshwari können Sie mir sagen, in welchen Fällen es nicht funktioniert ??? –

+0

Lies einfach den Link, den ich oben in den Kommentar eingefügt habe. –

1

können Sie ng-if-Direktive verwenden. versuchen Sie es so:

<a ng-if="type==1" ng-href="{{vm.firstPath}}">{{vm.name}}</a> 
    <a ng-if="type !=1" ng-href="{{vm.secondPath}}">{{vm.name}}</a>