Javascript 将JSON对象传递给ng init

Javascript 将JSON对象传递给ng init,javascript,json,angularjs,Javascript,Json,Angularjs,我正试图使用ng init+stringify将JSON对象传递给我的应用程序,但它不起作用,因为我遇到了一个Lexer错误 Lexer错误:表达式[friends={JSON.stringify(friends)}中第8-8列[#]处出现意外的nextharacter。 Javascript var-friends=[ {姓名:'John',电话:'555-1276'}, {姓名:'Mary',电话:'800-BIG-Mary'}, {姓名:'Mike',电话:'555-4321'}, {

我正试图使用ng init+stringify将JSON对象传递给我的应用程序,但它不起作用,因为我遇到了一个Lexer错误

Lexer错误:表达式[friends={JSON.stringify(friends)}中第8-8列[#]处出现意外的nextharacter。

Javascript

var-friends=[
{姓名:'John',电话:'555-1276'},
{姓名:'Mary',电话:'800-BIG-Mary'},
{姓名:'Mike',电话:'555-4321'},
{姓名:'Adam',电话:'555-5678'},
{姓名:'Julie',电话:'555-8765'},
{姓名:'Juliette',电话:'555-5678'}
];
HTML

<div ng-init="friends=#{JSON.stringify(friends)}"></div>

Angular正在使用作用域,无法访问全局变量/函数。所以它永远不会使用您的
friends
变量,也不可能从表达式访问
JSON.stringify
。另外,Angular中没有
{}
操作符,它在错误描述中告诉您了这一点

我建议您阅读:


Angular正在使用作用域,无法访问全局变量/函数。所以它永远不会使用您的
friends
变量,也不可能从表达式访问
JSON.stringify
。另外,Angular中没有
{}
操作符,它在错误描述中告诉您了这一点

我建议您阅读:


您必须以角度的方式进行操作,您可以使用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>

你好,普朗克!
var friends=[
{姓名:'John',电话:'555-1276'},
{姓名:'Mary',电话:'800-BIG-Mary'},
{姓名:'Mike',电话:'555-4321'},
{姓名:'Adam',电话:'555-5678'},
{姓名:'Julie',电话:'555-8765'},
{姓名:'Juliette',电话:'555-5678'}
];
var-app=angular.module('myApp',[]);
app.controller('myController',['$scope','$window',函数($scope,$window){
$scope.friendsscope=$window.friends;
}]);
{{朋友| | json}}


希望这有帮助

您必须以角度的方式进行操作,您可以使用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>

你好,普朗克!
var friends=[
{姓名:'John',电话:'555-1276'},
{姓名:'Mary',电话:'800-BIG-Mary'},
{姓名:'Mike',电话:'555-4321'},
{姓名:'Adam',电话:'555-5678'},
{姓名:'Julie',电话:'555-8765'},
{姓名:'Juliette',电话:'555-5678'}
];
var-app=angular.module('myApp',[]);
app.controller('myController',['$scope','$window',函数($scope,$window){
$scope.friendsscope=$window.friends;
}]);
{{朋友| | json}}


希望这有帮助

您应该尝试使用这些引号:

<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, "\\'") %>'">

您应该尝试使用这些引号:

<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, "\\'") %>'">