2017-06-12 10 views

答えて

1

は、ちょうど.. を追加したい... the expression is stored in a variable in string form, is it possible to do evaluate an expression variable ..

簡単な答えはNOあなたがangularjs式の文字列を評価することはできませんではありません変数がありますが、唯一の有効な式を評価することができます。(JSによって、または角度可変のいずれかによって)

を区別するために、コードの下にこれを参照してください。

var myApp = angular.module('myApp', []); 
 

 
//myApp.directive('myDirective', function() {}); 
 
myApp.controller('MyCtrl', function MyCtrl($scope) { 
 
    $scope.condition = { 
 
    SHOW1: "'test' == 'NOTEST'", 
 
    SHOW2: 'test' == 'test' 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <div ng-show="condition.SHOW1"> 
 
    1.Not working, as it is simple string("'test' == 'NOTEST'"). 
 
    </div> 
 

 
    <div ng-show="condition.SHOW2"> 
 
    2.Working, valid boolean Angular variable 
 
    </div> 
 

 
    <div ng-show="'test'=='test'"> 
 
    3.Working, valid boolean simple JS expression 
 
    </div> 
 
</div>

+1

文字列表現を明確にするために答えをアップしました。ありがとう:) –

2

CONTROLLER

0と同じである

$scope.test = 'test1'; 
$scope.condition = { show : ($scope.test === 'test1')}; 

VIEW

<div ng-show="condition.show">something like this.</div> 

をお試しください

<div ng-show="condition['show']">something like this.</div> 

TIP

代わりのng-show/ng-hideを使用して、ng-ifを使用するようにしてください。 ng-ifは、このディレクティブ内のバインドされた変数の変更を監視せず、パフォーマンスを向上させることができます。それは、すでに他のポストで答えていますけれども、あなたの質問ではあなたが言ったので

<div ng-if="condition['show']">something like this.</div> 
+1

またはビュー - 'NG-ショー= "条件[ 'SHOW] .model1 === 'TEST1'"' –

+0

@AlonEitan - 正確に - しかし、私ビューレベルでの追加の論理の本当のファンではありません。私はコントローラー側で論理を維持しようとする - 明快さを保つために。私は個人的だと思います。 :) –

+1

OK、あなたは私のupvoteを持っています;) –

関連する問題