![](/img/trans.png)
[英]How to convert single record array to ng-init format of AngularJS?
[英]Single/double quotes in ng-init
假设我们正在通过Mustache将初始数据从php传递到Angular的视图,并且数据是一些包含引号的字符串,例如“无法删除项目” 。 Mustache默认将单引号转换为'
喜欢:
ng-init="message='Can't delete item'"
但这会导致某种Angular解析问题:
Lexer错误:列中的未终止引用...表达式中的['] [message ='无法删除项目']
我不能使用Moustache的三重卷曲,因为它会像:
ng-init="message='Can't delete item'"
输出中出现相同的错误。
Plunk: http ://plnkr.co/edit/GCq4gLrD1NxxCvAsjHy9?p = preview
我们如何在Mustache舞台上优雅地解决它?
逃避报价:
ng-init="message='Can\'t delete item'"
使用backslash \\
逃避单引号backslash \\
如下:
ng-init="message='Can\'t delete item'"
尝试切换双引号和单引号。
而不是
ng-init="message='{{delete_message}}'"
尝试
ng-init='message="{{delete_message}}"'
我创建了一个指令来放置你的内容,它会将指令体分配给scope.message变量。
app.directive('myMessageVar',function(){
return{
restrict :'A',
scope:{
message:'=myMessageVar'
},
link: function (scope, iElement, iAttrs) {
scope.message=iElement.text();
iElement.text('');
}
}
})
在HTML中
<span my-message-var="message">Can't delete item</span>
Plunkr: http ://plnkr.co/edit/QRtXLX1IiGS6VV0Rc78I?p=preview
我今天遇到了这个问题,但我找不到多少答案。 但这段代码对我有用。
<?php $data_slashed = htmlentities(addslashes(html_entity_decode($data,ENT_QUOTES)),ENT_QUOTES); ?>
其中$data
是使用htmlentities
编码的一些数据 。
那么你现在可以做到这一点
<p ng-bind-html= "data" ng-init="data='<?php echo $data_slashed; ?>'" />
我没有尝试过胡子,但这适用于我的php模板。 希望这有助于其他人。
我相信你错误地使用了init。 来自ngInit文档:
ngInpe的唯一合适用途是用于别名ngRepeat的特殊属性,如下面的演示所示。 除了这种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。
对于从服务器端传递价值,我认为你应该要么使用$ HTTP (AJAX)或Module.constant
/ Module.value
从angular.Module 。
例如:
// define a value
app.value('message','Can't delete item');
// define a constant
app.constant('constMessage', 'Can't delete item');
然后,您可以将它们注入服务或控制器。 例如,对于控制器:
// use it in a controller
app.controller('someController', ['$scope', 'message', 'constMessage',
function($scope, message, constMessage) {
$scope.message = message;
$scope.constMessage = constMessage;
});
如果您的问题仅限于单引号,则可能会有效
ng-init='message="Can't delete item"'
尝试下面的代码它应该工作。
<body ng-controller="MainCtrl" ng-init='message="Can't delete item"'> <p>Message: {{message}}</p> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.