![](/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.