2015-12-21 63 views
1

何時何地在angularjs中使用$ eval和$ parse。

eReaderBook.controller("mainCtrl",function($scope){ 
    $scope.test = "asdasd"; 
    var s = "{{test}}"; 
    console.log($scope.$eval("s")) 
}) 

爲什麼console.log返回undefined。

+1

期望在控制檯中看到什麼? –

回答

0
eReaderBook.controller("mainCtrl",function($scope){ 
    $scope.test = "asdasd"; 
    var s = "test"; 
    console.log($scope.$eval(s)) 
}) 

$scope.$eval,不像eval()已經預計AngularJS公認的格式。 也不需要在eval中的"

0

你得到不確定的原因如下。

$ eval方法適用於作用域變量。這裏你的變量s只是一個普通的javascript變量。但是,如果您嘗試按以下方式登錄'test'。你會看到正在打印的值。

console.log($scope.$eval("test")) 

如果你嘗試中沒有報價如下

$scope.$eval(s) 

這時你會發現

Syntax Error: Token '{' invalid key

因爲S的值是{{測試}}。因此,eval會嘗試從範圍中查找值爲$ scope。{{test}},這是無效的並且有語法錯誤。

更多超過$scope.$eval('a+b')裝置$scope.a+$scope.b

所以在容易詞語那些可以編寫內部結合的角度塊{{ expression }}表達,還可以寫在$ EVAL方法字符串。

{{WHAT EVER YOU CAN WRITE HERE}} 
$scope.$eval('YOU CAN WRITE HERE ALSO');