何時何地在angularjs中使用$ eval和$ parse。
eReaderBook.controller("mainCtrl",function($scope){
$scope.test = "asdasd";
var s = "{{test}}";
console.log($scope.$eval("s"))
})
爲什麼console.log返回undefined。
何時何地在angularjs中使用$ eval和$ parse。
eReaderBook.controller("mainCtrl",function($scope){
$scope.test = "asdasd";
var s = "{{test}}";
console.log($scope.$eval("s"))
})
爲什麼console.log返回undefined。
eReaderBook.controller("mainCtrl",function($scope){
$scope.test = "asdasd";
var s = "test";
console.log($scope.$eval(s))
})
$scope.$eval
,不像eval()
已經預計AngularJS公認的格式。 也不需要在eval中的"
$ parse是一個將表達式轉換爲函數的Angular服務。然後可以調用該函數並傳遞一個上下文(通常爲範圍)以檢索表達式的值。
$ eval是一個作用域方法,它在當前作用域上執行一個表達式並返回結果。
欲瞭解更多信息,請參閱:
你得到不確定的原因如下。
$ 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');
期望在控制檯中看到什麼? –