我正在尝试将以下值传递给angular ng-init方法
ViewBag.payer = "921AC694-BA62-4388-AD92-282BD95526E1"
<input ng-model ="pid" ng-init="updatesubscriber(pid = @ViewBag.payer )"/>
我一直收到以下错误: 错误:[$ parse:syntax] http://errors.angularjs.org/1.2.11/ $ parse / syntax?p0 = AC694&amp; p1 = is%20unexpected%2C%20expecting%20%5B)%5D&amp; p2 = 21&amp; p3 = updatesubscriber(921AC694-BA62 -4388-AD92-282BD95526E1)及P4 = AC694-BA62-4388-AD92-282BD95526E1)
似乎角度不像付款人字符串中的连字符,并且可能将字符串作为表达式进行评估..
如何通过ViewBag.payer并防止出现此错误?
答案 0 :(得分:1)
你几乎拥有它。当您的<input>
呈现时,服务器端@ViewBag.payer
将是一个guid。但是你想要一个JavaScript中的字符串。所以,你只需要在它周围加上引号:
<input ng-model ="pid" ng-init="updatesubscriber(pid = '@ViewBag.payer' )"/>
然后,它应呈现为:
<input ng-model ="pid" ng-init="updatesubscriber(pid = '921AC694-BA62-4388-AD92-282BD95526E1' )"/>
JavaScript不知道如何评估看起来像21AC694-BA62-4388-AD92-282BD95526E1
的文本块。