我是AngularJS的初学者,我尝试了以下代码(来自教程):
我的观点:
<div ng-app="app">
<div ng-controller="exempleCtrl">
HELLO {{name}}!
</div>
我的控制器:
var app = angular.module("app", []);
app.controller("exempleCtrl", function($scope) {
$scope.name = "World"
});
出于某种原因,我想在我的视图中添加一些使用"name"值的js代码,为此我必须将其存储在一个变量中。。但是不起作用
<script language="JAVASCRIPT">
var name = {{name}};
</script>
但我不知道该怎么做。。请提供帮助:)
这种方式很长,但它很有效:
<script type="text/javascript">
setTimeout(function(){
var name = angular.element(document.querySelector('[ng-controller="exempleCtrl"]')).scope().name;
console.log(name)
},5000)
</script>
您不能在javascript中使用插值("{{variable}}")语法。您尝试在脚本标记中而不是在控制器本身中执行逻辑是有原因的吗?您的控制器是逻辑和视图之间的连接,因此您不需要在html中添加任何标签来执行该逻辑。
如果你真的想这么做。
<div ng-app="app">
<div id="myCtrl" ng-controller="exempleCtrl">
{{name}}
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var elem = document.getElementById('myCtrl');
var name = angular.element(elem).scope().name;
console.log(name);
});
</script>
请参阅jsfiddle代码