2016-04-02 24 views
3

Cshtml dosyamda bir boole değişkeni var. Angular yönergesine aktarmaya çalıştığımda, "false" yerine "False" olarak alınır. Eğer onu "yanlış" (küçük harf) olarak kodlarsam, o da işe yaramaz.Bir Razor boole değişkeni Açısal bir direktifine nasıl geçirebilirim?

Benim cshtml dosyası:

@{ 
    var myVar = false; 
} 

<some-directive test="@myVar"></some-directive> 

Testim yönergesi şu şekildedir:

angular.module('someApp') 
    .directive('someDirective', function() { 
     return { 
      restrict: 'E', 
      scope: { 
       test: '@' 
      }, 
      link: function ($scope, element, attrs) { 

       console.log($scope.test) // False 
       console.log(!$scope.test) // false 
       console.log(!!$scope.test) // true 
      } 
     } 
    }); 

cevap

3

Sen bulabilirsiniz kapsamı olmalıdır Cevabınızın bir kısmı here.

Özellikle Açısal için, yönerge değişkenini test: '@' yerine test: '=' olarak kullanın. Bununla, değişkeniniz "false" değeriyle boolean boolean olarak ve metin "false" olarak ayrıştırılacaktır.

@{ 
    var myRazorVar = false; 
} 

<some-directive test="@myRazorVar.ToString().ToLower()"></some-directive> 
@* or *@ 
<some-directive test="@Json.Encode(myRazorVar)"></some-directive> 
1

'=' değil '@'

angular.module('someApp') 
    .directive('someDirective', function() { 
     return { 
      restrict: 'E', 
      scope: { 
       test: '=' 
      }, 
      link: function ($scope, element, attrs) { 

       console.log($scope.test) // false 
       console.log(!$scope.test) // true 
       console.log(!!$scope.test) // false 
      } 
     } 
    }); 
3

hem diller küçük harfe duyarlıdır ve (hatta sayılar için) Boolean için farklı desen kullandığından size:

Ayrıca, Jilet dosyasında, "Yanlış" "false" dan dönüştürmek için aşağıdakileri deneyin Kullanılabilir:

<some-directive test="@Json.Encode(myVar)"></some-directive> 

C# verilerini format olarak javascript olarak biçimlendirir.

+1

Ancak, ben de '=' bağlama kullanmanız gerektiğine eminim. '@' Kullanarak booleanı bir dize olarak ele alır. – Zanon

İlgili konular