我试图使用ng init+ stringify将一个JSON对象传递给我的应用程序,但是它不起作用,我得到了一个Lexer错误。
Lexer Error: Unexpected nextharacter at columns 8-8 [#] in expression [friends=#{JSON.stringify(friends)}].
Javascript
var friends = [
{name:'John', phone:'555-1276'},
{name:'Mary', phone:'800-BIG-MARY'},
{name:'Mike', phone:'555-4321'},
{name:'Adam', phone:'555-5678'},
{name:'Julie', phone:'555-8765'},
{name:'Juliette', phone:'555-5678'}
];
</script>
<div ng-init="friends=#{JSON.stringify(friends)}"></div>
发布于 2015-10-27 08:23:08
你应该试试这些引语:
<div ng-init="friends='#{JSON.stringify(friends)}'"></div>
我不知道您的模板引擎是什么,但是如果使用ejs,它将是:
<div ng-init="friends='<%= JSON.stringify(friends) %>'"></div>
另外,如果您对一些简单的或/和双倍的引号有问题,您可以这样用regexp替换它们:
<div ng-init="friends='<%= JSON.stringify(friends).replace(/"/g, "\\\"").replace(/'/g, "\\'") %>'">
--我不知道这是一个最好的实践,还是不知道是在中,但是由于这一点,我可以共享以前从服务器到best检索到的一些数据。通过这种方式,我阻止了Angulars控制器对请求后端的公共API的许多请求。
在角度方面,您可以这样做:$scope.friends = JSON.parse(friends)
“公开”您的json。
发布于 2015-05-30 03:12:43
您必须以角度的方式进行操作,您可以使用angularjs的$window
访问javascript变量,并将其转换为控制器中的$scope
变量,并可以在html中访问它。
看看你的代码,我只是稍微修改了一下,
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body ng-controller="myController">
<h1>Hello Plunker!</h1>
<script>
var friends = [
{name:'John', phone:'555-1276'},
{name:'Mary', phone:'800-BIG-MARY'},
{name:'Mike', phone:'555-4321'},
{name:'Adam', phone:'555-5678'},
{name:'Julie', phone:'555-8765'},
{name:'Juliette', phone:'555-5678'}
];
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', '$window', function($scope, $window) {
$scope.friendsInscope = $window.friends;
}]);
</script>
<!--<div ng-init="friends=#{JSON.stringify(friends)}">{{friends}}</div>-->
<div ng-init="friends=friendsInscope">{{friends|| json}}</div>
</body>
</html>
工作柱塞
希望这能有所帮助!
发布于 2015-05-30 02:15:42
角是与范围一起工作的,它不能访问全局变量/函数。因此,它永远不会使用friends
变量,也不可能从表达式访问JSON.stringify
。在角度上也没有#{}
算子,它在错误描述中告诉了你。
我建议你读:
https://stackoverflow.com/questions/30541423
复制相似问题