raj*_*esh 3 javascript c# boolean razor angularjs
我的 cshtml 文件中有一个布尔变量。当我尝试将它传递给我的 Angular 指令时,它被接收为“False”而不是“false”。如果我将其硬编码为“false”(小写),它也不起作用。
我的 cshtml 文件:
@{
var myVar = false;
}
<some-directive test="@myVar"></some-directive>
Run Code Online (Sandbox Code Playgroud)
我的测试指令是这样的:
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
}
}
});
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到部分答案。
特别是对于 Angular,请使用指令变量 as 而test: '='不是test: '@'。这样,您的变量将被解析为值为“false”的布尔值,而不是文本“ false”。
另外,在 Razor 文件中,尝试以下操作将“False”转换为“false”:
@{
var myRazorVar = false;
}
<some-directive test="@myRazorVar.ToString().ToLower()"></some-directive>
@* or *@
<some-directive test="@Json.Encode(myRazorVar)"></some-directive>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |