Javascript ng init中的特殊字符:错误:$parse:Lexer错误:意外的下一个字符,AngularJS

Javascript ng init中的特殊字符:错误:$parse:Lexer错误:意外的下一个字符,AngularJS,javascript,angularjs,Javascript,Angularjs,我在AngularJS网站上遇到了一个问题。看起来,当ng init包含带有特殊字符(如“ï”)的内容时,会给我带来一个错误。有人知道怎么处理吗 ng-init="init('en', 'distance-from-city-to-city', '{"rate":17,"views":17,"_id":"5b6dccd4ee416d38ac4144b9",&#3

我在AngularJS网站上遇到了一个问题。看起来,当ng init包含带有特殊字符(如“ï”)的内容时,会给我带来一个错误。有人知道怎么处理吗

ng-init="init('en', 'distance-from-city-to-city', '{"rate":17,"views":17,"_id":"5b6dccd4ee416d38ac4144b9","path":"en,côte-d-ivoire,montagnes,guiglo,taï","place_id":"ChIJ29J4DJbCvA8Rnj-_RHcJMTU","name":"Taï","lang":"en","formatted_address":"Taï, Côte d'Ivoire","utc_offset":0,"location":{"_id":"5b6dccd4ee416d38ac4144ba","lat":5.871288,"lng":-7.454015999999999},"viewport":{"_id":"5b6dccd4ee416d38ac4144bb","northeast":{"_id":"5b6dccd4ee416d38ac4144bc","lat":5.8823873,"lng":-7.4380086},"southwest":{"_id":"5b6dccd4ee416d38ac4144bd","lat":5.860188399999999,"lng":-7.4700234}},"keywords":"Tai,cote,divo,divoi,div,d,cot,taï,ci,co,coye,iv,ivoi,ivoire,Taï,Côte,Ivoir","__v":0}', '{"rate":17,"views":32,"_id":"5b0991a2b3a19e611596af32","path":"en,italy,lombardy,metropolitan-city-of-milan,milan","place_id":"ChIJ53USP0nBhkcRjQ50xhPN_zw","name":"Milan","lang":"en","formatted_address":"Milan, Metropolitan City of Milan, Italy","utc_offset":120,"location":{"_id":"5b0991a2b3a19e611596af33","lat":45.4642035,"lng":9.189982},"viewport":{"_id":"5b0991a2b3a19e611596af34","northeast":{"_id":"5b0991a2b3a19e611596af35","lat":45.535689,"lng":9.2903463},"southwest":{"_id":"5b0991a2b3a19e611596af36","lat":45.3897787,"lng":9.065118199999999}},"keywords":"Mila,Milan,MItaly,MiItaly,MilaItaly,MilanItaly,pItaly,Милан,vb,vbkfy,Metropolitan,City,of,Ital,itali,italia,Italis","__v":0}')"
以下是我收到的一个错误:

Lexer Error: Unexpected next character  at columns 610-610 [ï] in expression [init('en', 'distance-from-city-to-city', '{"rate":17,"views":17,"_id":"5b6dccd4ee416d38ac4144b9","path":"en,côte-d-ivoire,montagnes,guiglo,taï","place_id":"ChIJ29J4DJbCvA8Rnj-_RHcJMTU","name":"Taï","lang":"en","formatted_address":"Taï, Côte d'Ivoire","utc_offset":0,"location":{"_id":"5b6dccd4ee416d38ac4144ba","lat":5.871288,"lng":-7.454015999999999}...
这是出现问题的页面:

这是没有问题的,例如:

使用ng init不是一种好的做法,但如果您真的想使用,请这样使用:


angular.module(“myapp”,[])
.controller(“ctrl”,函数($scope){
$scope.callInit=()=>{
$scope.init('en','城市到城市的距离','34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,17日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,17日,34日,34日,34日,34日,34日,34日,34日,34日,30日,34日,34日,34日,34日,34日,34日,34日,34日,34路径和34日,34日,路径和34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日:和34日和34日,34日,34日,34日,34日和34日:和34日,34日,34日,34日,34日,日,34日,日,日,日,日,日,日,日,日,CVA8RNJ-#u RHcJMTU";";";";";";lang";&#utc";en";";格式化地址";&#科特迪瓦塔伊";&.0 0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,34,34,34,3,34,34,34,34,34,3,34,4,34,34,34,34,34,4,4,34,34,34,4,34,34,34,34,34,4,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,液化天然天然气和34,34,34;lng和34,34;lng和34,34,34,34,液化8AC4144BB";";东北&";&&&";&&#id&";5b6dccd4ee416d38ac4144bc&&";纬度&&&&&:5.8823873;&&&";液化天然气&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁;34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34;关键词;关键词;关键词;关键词;关键词和34;关键词;关键词和34;关键词:和34岁,34;关键词:和34;关键词:和34岁:和和和和34;34岁,岁:和和和和34岁:和和和34;34;泰和和和和和和和和和和和34;34;34;长长长长长长长长长长长长#34;";u v";:0}','34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,34日,32日,32日,34日,32日,32日,32日,32日,34日,32日,34日,34日,34日,34日,34日,34日,34日,34日,32日,34日,32日,32日,34日,34日,34日,32日,32日,34日,34日,34日,34日,32日,34日,32日,34日,34日,32日,34日,32日,34日,34日,34日,32日,34日,34日,32 zw";";姓名";";米兰";";朗";&&&&";en&";";格式地址&";&";米兰,米兰大都市,It34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,120,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,34岁,40岁,120,34岁,34岁,34岁,34岁,34岁,34岁,34岁;34岁,45.4642035岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁,35岁东北部34;&&&";";";";";";&#id";";5B0991A2B3A19E61596AF35";";lat&";:45.535689;";lng"岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;西南部;34岁以下;西南部;34岁以下;34岁以下;西南部;34岁以下;34岁以下;西南部;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下;34岁以下以下;34岁以下;34岁以下;34岁以下以下以下以下以下;34岁以下;34岁以下以下以下;34岁以下以下以下以下;34岁以下以下以下以下以下以下以下以下;34岁以下;34岁以下以下;34岁以下以下以下以下;34岁以下:45.3838岁以下;34岁以下;34岁以下;34岁以下以下;34岁以下;34岁以下:45.3838Vbkfy,大都会,城市,of,Ital,itali,italia,Italis";,";u v";:0});
}
$scope.init=(/*args*/)=>{
控制台日志(“调用”);
//这里有一些代码
}
});

刚刚找到另一种解决此问题的方法。我决定使用全局javascript变量将数据传递给AngularJS控制器。更多信息请参见此处

而不是通过ng init传递变量:

<form
class="navbar-nav d-flex flex-sm-row flex-xs-column w-100 my-2 my-lg-0"
ng-controller="FormController"
ng-init="init('<%= locals.lang %>', '<%= locals.default.route_keyword %>', '<%= JSON.stringify(locals.from) %>', '<%= JSON.stringify(locals.to) %>')">...</form>
。。。

谢谢您的回答。这是来自数据库的动态数据。也许我应该创建一个端点,返回这些数据,并使用$http从控制器请求数据,而不是从呈现的html获取数据。
app.controller('RouteInfoController', ['$scope', function($scope){

  $scope.init = function(default_json, lang, currencies, liquids){
    $scope.local.route = fromToData.route
  }

}])
<form
class="navbar-nav d-flex flex-sm-row flex-xs-column w-100 my-2 my-lg-0"
ng-controller="FormController"
ng-init="init('<%= locals.lang %>', '<%= locals.default.route_keyword %>', '<%= JSON.stringify(locals.from) %>', '<%= JSON.stringify(locals.to) %>')">...</form>